平面点集的最小包围圆 - 邓俊辉 - Junhui Deng

合集下载

离散点集最小包围圆算法分析与改进

离散点集最小包围圆算法分析与改进

离散点集最小包围圆算法分析与改进李红军;张晓鹏【摘要】For calculating the smallest enclosing disk of a discrete set of points on the planar, three popular algorithms, I.e. The randomized incremental algorithm, the dual decision algorithm and the farthest point first progressive algorithm, are evaluated and an improvement of the randomized incremental algorithm is presented. The new algorithm employs the Axis-Aligned Bounding Boxes of the point set to optimize the initiate enclosing disk, which greatly improves the calculating efficiency. Numerical experiments show that the farthest point first progressive algorithm is the fastest one among the old three algorithms; the new algorithm is a fast and deterministic one, and can be helpful to the applications in computer graphics, facility locations, intelligent robot, and so on.%针对平面上的离散点集求取最小包围圆的问题,评述现有算法并给出一种改进算法,称为较远点对定义初始包围圆的增量算法.首先概述了几条对算法理解和设计有直接影响的最小包围圆性质或判定;然后对求取最小包围圆的随机增量算法、最远点优先渐近算法、对偶决策算法等3种典型算法进行概述和简要分析;再对随机增量算法和最远点优先渐近算法进行改进;最后,以二维区域随机点集、一维共线随机点集和共线有序点集3类数据进行实验对比.实验结果表明,最远点优先渐近算法是过去3种算法中效率最高的;论文提出的较远点对定义初始包围圆的增量算法大大提高了随机增量算法的时间效率,是该文所列举的方法中最快的算法,并且是一种确定性算法.离散点集最小包围圆的快速计算有助于碰撞检测和机器人等领域的广泛应用.【期刊名称】《图学学报》【年(卷),期】2012(033)002【总页数】5页(P34-38)【关键词】最小包围圆;随机增量算法;最小包围圆性质;计算几何【作者】李红军;张晓鹏【作者单位】北京林业大学理学院,北京100083;中国科学院自动化研究所模式识别国家重点实验室&中法联合实验室,北京100190;中国科学院自动化研究所模式识别国家重点实验室&中法联合实验室,北京100190【正文语种】中文【中图分类】TP301平面点集的最小包围圆(smallest enclosing disk)问题的提出至少可以追溯至1857年[1]。

最小包围圆课件资料

最小包围圆课件资料

《C程序设计》课程设计报告(2014 —2015学年第二学期)题目 __________________ 最小包围圆问题 ____________________学院:电气与电子工程学院 ____________班级: _______ 电气1309 ________________学号:___________ 1304080009 __________姓名:_____________ 唐永亮 __________________指导教师:___________ 罗涛华_________________时间:起2015427 止2015430一、课程设计基本信息课程代码:05190124课程名称:计算机基础课程设计课程英文名称:Computer-based Course Design课程所属单位(院(系)、教研室):数学与计算机学院计算机基础课程群课程面向专业:食品科学与工程学院、机械工程学院、电气与电子工程学院、土建学院、动物科学与营养工程学院、化学与环境工程学院、工商管理类、国际经济与贸易、旅游管理、金融学、行政管理、汉语言文学、英语、护理学、康复治疗专业、生物科学类、制药工程、制药工程(生物制药)、药物制剂、物流管理课程类型:必修课先修课程:大学计算机基础通识选修课程、程序设计课程学分:1 总学时:1周二、课程设计目标掌握所学语言程序设计的方法,熟悉所学语言的开发环境及调试过程,熟悉所学语言中的数据类型,数据结构、语句结构、运算方法,巩固和加深对理论课中知识的理解,提高学生对所学知识的综合运用能力。

通过综合设计要求达到下列基本技能:1 •培养查阅参考资料、手册的自学能力,通过独立思考深入钻研问题,学会自己分析、解决问题。

2 •通过对所选题目方案分析比较,确立方案,编制与调试程序,初步掌握程序设计的方法,能熟练调试程序。

3 •系统设计编程简练,可用,功能全面,并有一定的容错能力。

用户界面良好,有较好的输出功能。

ACM计算几何最小圆覆盖算法

ACM计算几何最小圆覆盖算法

平面上有n个点,给定n个点的坐标,试找一个半径最小的圆,将n 个点全部包围,点可以在圆上。

1. 在点集中任取3点A,B,C。

2. 作一个包含A,B,C三点的最小圆,圆周可能通过这3点,也可能只通过其中两点,但包含第3点.后一种情况圆周上的两点一定是位于圆的一条直径的两端。

3. 在点集中找出距离第2步所建圆圆心最远的D点,若D点已在圆内或圆周上,则该圆即为所求的圆,算法结束.则,执行第4步。

4. 在A,B,C,D中选3个点,使由它们生成的一个包含这4个点的圆为最小,这3 点成为新的A,B,C,返回执行第2步。

若在第4步生成的圆的圆周只通过A,B,C,D 中的两点,则圆周上的两点取成新的A和B,从另两点中任取一点作为新的C。

程序设计题解上的解题报告:对于一个给定的点集A,记MinCircle(A)为点集A的最小外接圆,显然,对于所有的点集情况A,MinCircle(A)都是存在且惟一的。

需要特别说明的是,当A为空集时,MinCircle(A)为空集,当A={a}时,MinCircle(A)圆心坐标为a,半径为0;显然,MinCircle(A)可以有A边界上最多三个点确定(当点集A中点的个数大于1时,有可能两个点确定了MinCircle(A)),也就是说存在着一个点集B,|B|<=3 且B包含与A,有MinCircle(B)=MinCircle(A).所以,如果a不属于B,则MinCircle(A-{a})=MinCircle(A)。

如果MinCircle(A-{a})不等于MinCircle(A),则a属于B。

所以我们可以从一个空集R开始,不断的把题目中给定的点集中的点加入R,同时维护R的外接圆最小,这样就可以得到解决该题的算法。

不断添加圆,维护最小圆。

如果添加的点i在圆内,不动,否则:问题转化为求1~I的最小圆:求出1与I的最小圆,并且扫描j=2~I-1,维护(1)+(i)+(2~j)的最小圆,如果找到J不在最小圆内,问题转化为:求(1~J)+(i)的最小圆。

二维点集拟合圆

二维点集拟合圆

二维点集拟合圆圆是几何中最简单的形状之一,它具有许多独特的性质和应用。

在实际应用中,我们经常需要通过已知的二维点集来拟合出一个圆,以便进行进一步的分析和处理。

本文将详细讨论二维点集拟合圆的方法和应用。

一、引言在许多领域,如计算机视觉、图像处理、机器人导航等,我们需要对图像或传感器数据进行分析和处理。

其中,拟合圆是一个常见的任务,因为圆形是许多物体的基本形状之一,如圆盘、轮胎等。

通过拟合圆,我们可以获得物体的大小、位置和形状等重要信息,从而实现进一步的分析和应用。

二、二维点集拟合圆的方法1.最小二乘法拟合圆最小二乘法是一种常见的拟合方法,它通过最小化拟合误差的平方和来找到最优解。

在拟合圆的问题中,我们可以使用最小二乘法来找到与二维点集最接近的圆。

具体而言,我们可以将最小二乘法应用于圆的方程。

圆的方程可以表示为:(x-a)²+(y-b)²=r²其中,(a,b)是圆心的坐标,r是半径。

为了使用最小二乘法拟合圆,我们需要找到使得所有点到圆的距离之和最小的圆。

2.随机采样一致算法拟合圆随机采样一致(RANSAC)算法是一种常用的拟合方法,它可以在存在噪声和异常值的情况下,找到最佳的拟合模型。

在拟合圆的问题中,RANSAC算法可以用于从二维点集中找到最佳的圆。

具体而言,RANSAC算法通过随机采样一小部分点集来拟合一个圆,并计算其他点到该圆的距离。

然后,它根据距离阈值将点分为内点和外点,重新拟合圆并计算拟合误差。

重复这个过程,直到找到最佳的圆。

三、二维点集拟合圆的应用1.目标检测和跟踪在计算机视觉和图像处理中,我们经常需要对目标进行检测和跟踪。

通过拟合圆,我们可以找到物体的轮廓,并计算出其大小、位置和形状等重要信息。

这些信息可以用于目标检测和跟踪算法中,从而实现自动识别和跟踪目标的功能。

2.图像校正和畸变校正在图像处理中,图像可能会因为相机的畸变或透视变换等原因而失真。

通过拟合圆,我们可以估计出相机的畸变参数,并对图像进行校正,从而得到更准确和真实的图像。

点线面构成

点线面构成
成线的感觉,我们平时画的虚线就是这种感觉。
一.点的构成
(三)点的错视 是指点在不同的环境下产生错误的视觉现象。
1.明亮的点有处于前面感觉并且
感觉大,黑色的点有后退并且
图1
有点小的感觉(图1)。
2.本来有两个一样大小的点,由于一个点的周围是小点,一个点的周围 是大点,这时产生的错视现象是原本两个相同的点产生大小不同的感觉(图2)。
一.点的构成
2.点的视觉特征 点的基本属性是注目性,点能形成视觉中心,也是力的中心。也就是
说当画面有一个点时,人们的视线就集中在这个点上,因为单独的点本身 没有上、下、左、右的连续性,所以能够产生视觉中心的视觉效果。
一.点的构成
当单个的点在画面中的位置不同产生心理感受也是不同的。居 中会有平静、集中感;偏上时会有不稳定感,形成自上而下的视觉流 程;位置偏下时,画面会产生安定的感觉,但容易被人们忽略。位于 画面三分之二偏上的位置时,最易吸引人们的观察力和注意力。
B:曲线形 a:几何曲线形:指具有固定半径的曲线.。 b:自由曲线形:不具有几何秩序的曲线形.。 c:偶然性:特殊技法偶然得出。
三.面的构成
(三)面的性格特征:
面的形态是多种多样的,不同的形态的面,在视觉上有不同的作用和特 征,直线形的面具有直线所表现的心理特征,有安定、秩序感,男性的性格 (图1)。曲线形的面具有柔软、轻松、饱满、女性的象征(图2)。偶然形 的面如:水和油墨,混合墨洒产生的偶然形等,比较自然生动,有人情味 (图3)。
壮实敦厚五线的构成方法1面化的线等距的密集排列图12疏密变化的线按不同距离排列透视空间的视觉效果图23粗细变化空间虚实空间的视觉效果图34错觉化的线将原来较为规范的线条排列作一些切换变化图45立体化的线图56不规则的线图6线的构成范例二

13平面点集的一般概念

13平面点集的一般概念

z 0
确定的点的集合为z0 的去心邻域.
记作:Nδ0(z0)={z | 0<|z-z0|< δ}
定义2 内点、边界点、孤立点
设有点集G及一点z0 :
G
若存在点z0 的某邻域 Nδ(z0) G
则称 z0为G的内点;
若在z0的任意一个邻域内,都有属于G的点,也有 不属于G的点,则称z0为G的边界点.
即 z( ) z( ) , 那末称 C 为简单闭曲线.
换句话说, 简单曲线自身不相交.
课堂练习 判断下列曲线是否为简单曲线?
z(a) z(a) z(b)
z(b) z(a) z(b) z(a)
z(b)


答单

案闭











简单闭曲线的性质约当定理
任意一条简单闭曲线 C 将复平面唯一地分成
一条简单闭曲线, 而曲线的内部总属于D, 就称 为单连通域. 一个区域如果不是单连通域, 就称 为多(复)连通域.
单连通域
多连通域
例2 指明下列不等式所确定的区域, 是有界的还是
无界的,单连通的还是多连通的.
(1) Re(z2 ) 1; (2)arg z ; (3) 1 3;
3
z
(4) z 1 z 1 4.
定义7 简单曲线
对于满足 t1 , t2 的 t1 与 t2 ,当
t1 t2 而有 z(t1 ) z(t2 ) 时, 点 z(t1 ) 称为曲线C
的 重 点.
重点
重点
没有重点的曲线 C 称为
重点
简单曲线(或Jordan曲线).

平面点集的最小包围圆

平面点集的最小包围圆

平面点集的最小包围圆平面点集的最小包围圆1、问题背景考察固定在工作平台上的一直机械手,要捡起散落在不同位置的多个零件,并送到别的地方。

那么,这只机械手的底座应该选在哪里呢?根据直觉,应该选在机械手需够着的那些位置的“中心”。

准确地讲,也就是包围这些点的那个最小圆的圆心----该位置的好处是,可使机械手的底座到它需要够着的那些点的最大距离最小化。

于是可得如下问题:给定由平面上n个点所组成的一个集合P(对应于机械手需要够着的工作平台的那些位置),试找出P的最小包围圆(smallest enclosing disc)----亦即,包含P中所有点、半径最小的那个圆。

这个最小包围圆必然是唯一的。

2、算法及原理算法介绍:我们本次算法的设计是基于这样一个简单直观的性质:在既定的给定点条件下,如果引入一张新的半平面,只要此前的最优解顶点(即唯一确定最小包围圆的几个关键顶点)能够包含于其中,则不必对此最优解进行修改,亦即此亦为新点集的最优解;否则,新的最优解顶点必然位于这个新的半空间的边界上。

定理可以通过反证法证明。

于是,基于此性质,我们便可得到一个类似于线性规划算法的随机增量式算法。

定义Di为相对于pi的最小包围圆。

此算法实现的关键在于对于pi∉Di-1时的处理。

显然,如果pi∈Di-1,则Di= Di-1;否则,需要对Di另外更新。

而且,Di的组成必然包含了pi;因此,此种情况下的最小包围圆是过pi点且覆盖点集{ p1 ,p2 ,p3 ……pi-1}的最小包围圆。

则仿照上述处理的思路,Di={ p1 ,pi },逐个判断点集{ p2 ,p3 ……pi-1 },如果存在pj∉ Di,则Di={pj,pi }。

同时,再依次对点集{ p1 ,p2 ,p3 ……pj-1 }判断是否满足pk∈Di,若有不满足,则Di={pk ,pj,pi }。

由于,三点唯一地确定一个圆,故而,只需在此基础上判断其他的点是否位于此包围圆内,不停地更新pk。

平面点集的基本概念定义将有序实数对

平面点集的基本概念定义将有序实数对
(x1 − x2 )2 + (y1 − y2 )2
称为点 P1 与点 P2的距离,表示为| P1 − P2|或 ρ (P1, P2 ) . 不难证明,对 ℜ2的任意三点 P1, P2 , P3, 它们之间的距离满足三角不等式,即 | P1 − P2 |≤| P1 − P3 | + | P3 − P2 | .
区域列{Rn }, 它满足下列条件:
1)R1 ⊃ R2 ⊃ ⋯ ⊃ Rn ⊃ ⋯ ;
() 2
2) lim d n →∞
Rn
= lim l = 0. 2 n→∞ n−1
每个Rn中所包含D的(非空)子集Dn−1没有有限覆盖.根据定理(1 闭矩形套定理),存在唯一
一点Ρ ∈ Rn (n = 1,2,3,⋯).
{(x, y) | | x − a |< r,| y − b |< r},
称为点 P(a,b)的 r (方形)邻域,也表为 U (P, r).
注:这两种邻域只是形式不同,无本质区别 .
在 点 P(a,b) 的 r 邻 域 U (P, r) 中 去 掉 点 P , 即 点 集
{ } (x, y)| 0 < (x − a2 )+ (y − b)2 < r
上任一点都是 M K 的聚点.
{ } 例 2.设 E = (x, y ) | x2 + y2 < 1 则E的所有点 都是内点 ,满足 x 2 + y 2 > 1的点都
是 E 的外点,圆周 x 2 + y 2 = 1的点都是 E 的界点.所有的内点都是 E 的聚点.所有的
界点都是 E 的聚点. 注:一般地,界点不一定都是聚点 .
n1 < n2 < ⋯ < nk < ⋯
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

平面点集的最小包围圆
1、问题背景
考察固定在工作平台上的一直机械手,要捡起散落在不同位置的多个零件,并送到别的地方。

那么,这只机械手的底座应该选在哪里呢?根据直觉,应该选在机械手需够着的那些位置的“中心”。

准确地讲,也就是包围这些点的那个最小圆的圆心----该位置的好处是,可使机械手的底座到它需要够着的那些点的最大距离最小化。

于是可得如下问题:给定由平面上n个点所组成的一个集合P(对应于机械手需要够着的工作平台的那些位置),试找出P 的最小包围圆(smallest enclosing disc)----亦即,包含P中所有点、半径最小的那个圆。

这个最小包围圆必然是唯一的。

2、算法及原理
算法介绍:我们本次算法的设计是基于这样一个简单直观的性质:在既定的给定点条件下,如果引入一张新的半平面,只要此前的最优解顶点(即唯一确定最小包围圆的几个关键顶点)能够包含于其中,则不必对此最优解进行修改,亦即此亦为新点集的最优解;否则,新的最优解顶点必然位于这个新的半空间的边界上。

定理可以通过反证法证明。

于是,基于此性质,我们便可得到一个类似于线性规划算法的随机增量式算法。

定义D i为相对于p i的最小包围圆。

此算法实现的关键在于对于p i∉D i-1时的处理。

显然,如果p i∈D i-1,则D i= D i-1;否则,需要对D i另外更新。

而且,D i的组成必然包含了p i;因此,此种情况下的最小包围圆是过p i点且覆盖点集{ p1,p2,p3……p i-1}的最小包围圆。

则仿照上述处理的思路,D i={ p1,p i },逐个判断点集{ p2,p3……p i-1 },如果存在p j∉ D i,则D i={p j,p i }。

同时,再依次对点集{ p1,p2,p3……p j-1 }判断是否满足p k∈D i,若有不满足,则D i={p k,p j,p i}。

由于,三点唯一地确定一个圆,故而,只需在此基础上判断其他的点是否位于此包围圆内,不停地更新p k。

当最内层循环完成时,退出循环,转而更新p j;当次内层循环结束时,退出循环,更新p i。

当i=n时,表明对所有的顶点均已处理过,此时的D n即表示覆盖了给定n个点的最小包围圆。

算法 MINIDISC(P)
输入:由平面上n个点组成的一个集合P
输出:P的最小包围圆
1. 令D2为对应于{ p1,p2}的最小包围圆
2. for i ← 3 to n
3. do if p i ∈ D i-1
4. then D i ← D i-1
5. else D i ← MINIDISCWITHPOINT{{ p1,p2,p3……p i-1},p i}
6. return D n
算法 MINIDISCWITHPOINT(P,q)
输入:由平面上n个点构成的一个集合P,以及另外一个点q
输出:在满足“边界穿过q”的前提下,P的最小包围圆
1. 令D1为对应于{ p1,q}的最小包围圆
2. for j ← 2 to n
3. do if p j ∈ D j-1
4. then D j ← D j-1
5. else D j ← MINIDISCWITH2POINT{{ p1,p2,p3……p j-1},p j,p i}
6. return D n
算法 MINIDISCWITH2POINT(P,q1,q2)
输入:由平面上n个点构成的一个集合P,以及另外两个点q1,q2
输出:在满足“边界穿过q1,q2”的前提下,P的最小包围圆
1. 令D0为对应于{ q1,q2}的最小包围圆
2. for k ← 1 to n
3. do if p k∈ D k-1
4. then D k ← D k-1
5. else D k ← q1,q2和p k确定的圆
6. return D n
时间复杂度:此算法对于任意给定的n个点,可以再O(n)的期望运行时间内计算出来。

算法MINIDISCWITH2POINT中的每一轮迭代循环只需要常数时间,因此其运行时间为O(n);另外,它只需要线性的空间。

至于算法MINIDISCWITHPOINT和MINIDISC,他们也同样只需要线性的存储空间。

对于它们的期望运行时间分析如下:对于算法MINIDISCWITHPOINT,只要不计入其调用MINIDISCWITH2POINT的时间,其余计算所需要的时间为O(n)。

依据概率论分析可以求其期望运行时间的上界O(n)+
2、遇到的问题及解决对策
实验之初,我们曾提出一种比较直观的算法,即从平面上的任意三点出发,求其最小包围圆,;再依次判断之外的点,看其相对位置是位于圆内(包括在圆上)还是圆外。

若在圆内,则最小包围圆不变,再判断下个点;否则,求包围此四点的最小包围圆。

逐个迭代,直至完全遍历。

显然,该算法的时间复杂度比较大,达到O(n4),在实际应用中是不可取的。

4、测试结果
红色的点为求出的圆心位置显示。

算法效率说明
5、程序说明
1. 在空白区域可以直接点击鼠标逐个输入点数据。

(目前支持最大65536
个点的数据),直接计算出最小覆盖圆的圆心,半径
2. 菜单栏"数据"-->"清空数据": 将已有的数据信息删除,以便完成
新的输入操作。

3. 菜单栏"数据"-->"随机数": 输入需要的随机点个数,产生随
机点。

(目前支持最大128个点的数据)
4. 菜单栏"数据"-->"保存样例": 保存当前输入点的信息,存储为
txt文件。

最后一行的结果为圆心的坐标,圆的半径
5. 菜单栏"数据"-->"选择样例": 根据选择的txt文件,批量生成点
的信息数据
6.状态栏上给出了算法的执行时间
6、参考文献
1.smallest enclosing disks balls and ellipsoids by EMO Welzl
2.计算几何-算法与应用(第二版)。

相关文档
最新文档