平面点群最小包络圆模型与计算
1 问题描述
很多材料与口头表述中出现了这样一个句子:“求多边形最小外接圆”。事实上这样的描述是不准确的,多边形的外接圆指与多边形各顶点都相交的圆,若多边形存在外接圆,则外接圆唯一。这句话想表明的意思切确的来说,应该解释为求一个最小的圆,能够覆盖整个多边形。在探讨任意多边形的覆盖问题时,用平面点群来取代多边形,则更具备普适性。因此可将原问题转化为:“求平面点群最小包络圆”。
2 数学模型
文字被编辑器吃掉了,我直接上图好了
3 模型求解
3.1 简单算法
在不考虑计算的量的情况下,提出一种简单算法。其基本理论基础是①任意点群,相互距离最大的两点必在该点群的最小包络圆上②最小包络圆与点群至少有两个交点③当交点只有两个时,最小包络圆以距离最大两点的连线为直径④若包络圆与点群中三个及三个以上的点相交,则包络圆为点群中某三点构成的三角形的外接圆。
基于上述基础,算法思想为:先求点群距离最大两点,再与其余点组合形成三角形,迭代判别三角形外接圆是否满足条件。
算法步骤如下所示:
STEP 1: 计算点群P的距离矩阵,选取距离最近两点,设为A、B;
STEP 2: 求以AB为直径的圆O,判断O是否能覆盖所有点,是则输出该圆,否则继续;
STEP 3: 计算所有点到AB的距离,并以距离降序排列点,得到新点群