一种基于计算几何方法的最小包容圆求解算法.kdh
最小二乘拟合圆介绍与推导

最小二乘拟合圆介绍与推导最小二乘法(least squares analysis)是一种数学优化技术,它通过最小化误差的平方和找到一组数据的最佳函数匹配。
最小二乘法是用最简的方法求得一些绝对不可知的真值,而令误差平方之和为最小来寻找一组数据的最佳匹配函数的计算方法,最小二乘法通常用于曲线拟合(least squares fitting) 。
最小二乘圆拟合方法是一种基于统计的检测方法,即便是图像中圆形目标受光照强度不均等因素的影响而产生边缘缺失,也不会影响圆心的定位和半径的检测,若边缘定位精确轮廓清晰,最小二乘法可实现亚像素级别的精确拟合定位。
1.2VC实现的代码void CViewActionImageTool::LeastSquaresFitting(){if (m_nNum<3){return;}int i=0;double X1=0;double Y1=0;double X2=0;double Y2=0;double X3=0;double Y3=0;double X1Y1=0;double X1Y2=0;double X2Y1=0;for (i=0;i<m_nNum;i++){X1 = X1 + m_points[i].x;Y1 = Y1 + m_points[i].y;X2 = X2 + m_points[i].x*m_points[i].x;Y2 = Y2 + m_points[i].y*m_points[i].y;X3 = X3 + m_points[i].x*m_points[i].x*m_points[i].x;Y3 = Y3 + m_points[i].y*m_points[i].y*m_points[i].y;X1Y1 = X1Y1 + m_points[i].x*m_points[i].y;X1Y2 = X1Y2 + m_points[i].x*m_points[i].y*m_points[i].y;X2Y1 = X2Y1 + m_points[i].x*m_points[i].x*m_points[i].y;}double C,D,E,G,H,N;double a,b,c;N = m_nNum;C = N*X2 - X1*X1;D = N*X1Y1 - X1*Y1;E = N*X3 + N*X1Y2 - (X2+Y2)*X1;G = N*Y2 - Y1*Y1;H = N*X2Y1 + N*Y3 - (X2+Y2)*Y1;a = (H*D-E*G)/(C*G-D*D);b = (H*C-E*D)/(D*D-G*C);c = -(a*X1 + b*Y1 + X2 + Y2)/N;double A,B,R;A = a/(-2);B = b/(-2);R = sqrt(a*a+b*b-4*c)/2;m_fCenterX = A;m_fCenterY = B;m_fRadius = R;return;}---------------------作者:Jacky_Ponder来源:CSDN原文:https:///jacky_ponder/article/details/70314919 版权声明:本文为博主原创文章,转载请附上博文链接!。
同轴度误差最小包容圆有限元后处理算法

同轴度误差最小包容圆有限元后处理算法
郑翔;阮志强;夏卫明;何小元
【期刊名称】《东南大学学报(自然科学版)》
【年(卷),期】2009(039)006
【摘要】针对工作状态下机械零部件同轴度误差数据采集难的特点,结合有限元后处理,提出了一种通过求解一组投影圆心坐标的最小包容圆(最小外接圆)来实现分析同轴度误差的计算方法.将轴套分为n段,将每段内边界变形后的节点坐标向同一平面投影,采用最小二乘法拟合成圆,即可获得n个圆心坐标.为求这平面点列(n个有限点)的最小包容圆,将问题转化为非线性约束最优化问题.通过分区优化搜索算法求解目标.同时采用了遗传算法来验证,两者计算结果一致.
【总页数】5页(P1156-1160)
【作者】郑翔;阮志强;夏卫明;何小元
【作者单位】东南大学土木工程学院,南京210096;扬州大学机械工程学院,扬州225009;扬州柴油机有限责任公司技术开发部,扬州225006;扬州大学机械工程学院,扬州225009;东南大学土木工程学院,南京210096
【正文语种】中文
【中图分类】TP301.6;TK422
【相关文献】
1.最小包容区域法处理圆度误差的程序算法 [J], 曾新勇
2.用遗传算法求平面点列的最小包容圆 [J], 王洪发;刘捷
3.一种基于计算几何方法的最小包容圆求解算法 [J], 张勇;陈强
4.圆度误差的最小二乘法、最小包容区域法和最优函数法评定精度之比较 [J], 田树耀
5.最小外接圆法和最大内切圆法圆度评估的快速算法 [J], 葛根焰;汤建勋
因版权原因,仅展示原文概要,查看原文内容请购买。
用遗传算法求平面点列的最小包容圆

I so v o sy t a ln rp i ts th si n me a l ic ti b iu l h ta p a a o n e a n u r b e cr ums rb e ice .To g ta mi mu cr u c i ld cr ci l d cr l s e ni m ic ms rb e i-
摘要 : 在机械制造和模具加工 中, 常要评价 圆面的造 形误差 , 经 通常 引入平 面点列包 容 圆的几何概 念 , 然一 显 个平面点列有无数个包容圆。为求得最 小的包 容圆 , 立 了求平 面点列包 容 圆的数学模 型 , 求最小 包容 圆问题 建 将 转化为函数优化 问题 , 并用遗传算法解决 了这个函数最 优解 的求解 问题 。实测结 果表 明, 中求平 面点列最小 包 文
ce t e t a d l sb i o t n f r t e p o l m fg t n n mu cr u c il d cr l e p o — l ,a mah mai l c mo e u l t r s m h r b e o e t g a mi i m ic ms r e i e t t r b i t a o i b c o h l m f p i z g f n t n a d t o v e f n t n o t z t n w t e ei l o t m. T s r s l h w t a ,t e e o t o mii u ci n s le t u c i p i ai i g n t a g r h n o o h o mi o h c i e t e u t s o h t h s
基于遗传算法的封闭轮廓最小面积凸包围盒生成算法

约束条件 :
1 、 构成 一 凸 I 边 形 K; ) ) , T S
意封闭轮廓 的最小四边形包围盒一直是人们研究 的热点。本文基于遗传算法的思想提 出了任意封
一
6 — 3
维普资讯
刘 云 , 戴光明 , 王茂才
随机演化 , 即根据交叉概率 P 和变异概 率 P 。 进 点位于同一个象 限 , 则根据顶点 的坐标分别进行
行 杂交 和变异 , 之后根 据 适应 函数 进行 选 择 , 更新 编码 调整 。例 如 , 有 两个 顶 点位 于 第二 象 限 , 若 则 , 种群中的解 , 然后再进行下一代的演化 , 直至满足 这 两 个顶 点 中 坐标 小 的顶 点 的编 码为 2 坐标 然 停机条件方才结束 , 此时群体 中的最优解 即为最 大 的顶点 编码 为 3, 后 调整 另一 个顶 点 的编码 。 3 2 初始 种群 . 小面积 四边形包 围盒。本算 法 中, 初始种群 的规
2 凸 I边形 K包 围原始的凸 边形 ; ) T S
3 凸 I 边 形 K在 包 围 凸 n边形 的所 有 凸 m ) T S
闭轮廓的最小 凸多边形包围盒 的算法实现 , 算法 边 形 中面积 最 小 。 简单 , 速度快 , 效果显著。实际应用表明了该算法
的有效性与实用性。
2 算法思想
该算法的主要思路是 : 对于初始 群体 中的各 个 凸多边形包 围盒每个点 的坐标 , 用演化 的方法
1 问题 描 述
该问题简单地说就 是对 于一个 凸壳 ( 对于任 随机产生 。首先 随机产 生多个 符合要 求的包 围 意封闭区域可 以先求 出其封 闭轮廓 , 然后 再求其 盒 , 即包 围原 始 的凸 边形 的凸多 边形 , 然后进 行
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)的最小圆。
计算几何 最小圈

计算几何最小圈
在计算几何中,最小圈是包含给定点集的最小的圆。
也可以称之为最小包围圆或最小外接圆。
求解最小圈的常用算法是Welzl 算法(也称为随机增量法)和Graham's Scan算法。
以下是一般的最小圈求解步骤:
1.输入点集:给定一组点集P。
2.初始化最小圈:选择初始最小圈C,可以是一个已知的圆
(如两个点之间的线段的中点为圆心,半径为两端点之间
的距离的一半),或者一个空圆。
3.递归算法:使用递归算法依次考虑每个点p属于P。
对于
每个点p,进行以下判断:
o如果点p在当前最小圈C内,则继续处理下一个点。
o如果点p在当前最小圈C外,则更新最小圈C使之包含点p,并递归地考虑剩余点集。
4.递归基:当递归到只剩下一个点或没有点时,结束递归,
最小圈已经找到。
5.输出最小圈:返回找到的最小圈C作为结果。
最小圈的求解算法可以根据具体情况进行优化,例如根据点的位置进行顺序处理,避免计算不必要的点。
Welzl算法和Graham's Scan算法都能在较高效的时间复杂度内找到最小圈。
需要注意的是,最小圈的求解问题可以有多种变种和扩展,具体算法和实现因问题和条件的不同而有所差异。
圆度误差的最小二乘法_最小包容区域法和最优函数法评定精度之比较

圆度误差的最小二乘法、最小包容区域法和最优函数法评定精度之比较田树耀(福建华侨大学机电学院,泉州362021)摘 要 目的在于寻找符合最小条件的圆度误差评定方法。
首先详细介绍圆度误差评定的最小二乘法、最小包容区域法和最优函数法的算法模型与实现方法;然后,在三坐标测量机上对被测圆进行采样点坐标数据提取,分别用最小二乘法、最小包容区域法和最优函数法对给定圆进行误差评定。
结果表明,最小包容区域法评定精度最高,最优函数法评定精度次之,最小二乘法评定精度较低。
关键词 圆度误差;最小二乘法;区域搜索;M TALAB;评定精度0 引言圆度公差是评价回转体零件的一项重要精度指标,它用于控制被测圆柱面任一正截面上的实际圆相对于理想圆的变动量[1]。
圆度误差的大小将直接影响到零件的回转精度、配合面的接触状况及耐磨性等,因此圆度误差的精确测量与评定无论对零件合格性的判定,还是对圆度误差产生原因的判断与消除都是十分重要的。
随着三坐标测量机、圆度仪等自动数据采集仪器日益广泛的应用,坐标测量值原则越来越有取代测量特征参数原则和控制实效边界原则之势成为圆度误差的主要测量原则[2]。
基于测量坐标值原则下圆度误差的测量一般在圆度仪或三坐标测量机上实现。
G B/T7235-2004规定了圆度误差的4种评定方法:最小区域法、最小二乘法、最小外接圆法和最大内接圆法[3]。
其中,最小二乘法因其理论成熟、算法简便易行等优点应用最为普遍,甚至被列为欧美国家的标准。
但最小二乘法并不能提供满足最小条件的圆度误差评定结果。
研究人员研究了多种方法以获得最小区域的圆度误差评定结果,但这些方法大都由于算法复杂,不易被工程实际人员掌握。
本文提出最优函数法评定圆度误差的数学模型,深入探讨了最小二乘法、最小包容区域法和最优函数法的算法模型与实现方法。
1 圆度误差评定的最小二乘法设(x i,y i),i=1,2,…,n,n>3为被测实际圆周上的测量采样点。
用带约束的最小二乘法拟合平面圆曲线_刘元朋

圆度误差 e 1 409 048 84 1 987 828 97 3 549 070 98 1 413 002 70
图 1 4 种算法对表 1 中数据的拟合效果
10 期
刘元朋等 : 用带约束的最小二乘法拟合平面圆 曲线
1385
图 2 4 种算法对表 2 中数据的拟合效果
(廖 平 , 喻寿益 基于 遗传算法 的圆的半 径测量 [ J ] 计量
4
结
论
学报 , 2001, 22( 2) : 87~ 89) [ 3] Xu Guowang, Liao M ingchao A variet y of methods of fit circle [ J] Journal of W uhan Polyt echnic U niversit y, 2002( 4) : 104 武汉工 业学院 学 ~ 105( in Chinese) ( 徐国旺 , 廖明潮 拟合 圆的几种 方法 [ J] 报 , 2002( 4) : 104~ 105) [ 4] Liu Shuhua, Wen Liangqi, Q u Jianw u Fit ting met hod w it h least square curves for non -circular curve [ J] N ew T echnology & N ew Process, 2001( 7) : 12~ 14( in Chinese) ( 刘书华 , 文良起 , 瞿建武 非圆曲线的最小二乘拟合 法 [ J] 新技术新工艺 , 2001( 7) : 12~ 14) et al Fit t ing [ 5] Fit zgibbon A, Pilu M , Fisher R B D irect least square fit t ing of ellipses [ J] [ 6] IEEE T ransact ions on Pat t ern A nalysis and M a chine Intelligence, 1999, 21( 5) : 476~ 480 Gander W, G olub G H, St rebel R Least - square fit ting of circles and ellipses [ J] [ 7] BIT, 1994, 34( 4) : 558~ 578 Fait hf ul least - squares
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2007年 工 程 图 学 学 报2007第3期 JOURNAL OF ENGINEERING GRAPHICS No.3一种基于计算几何方法的最小包容圆求解算法张 勇, 陈 强(清华大学机械工程系先进成形制造重点实验室,北京 100084)摘要:为实现点集最小包容圆(最小外接圆)的求解,将计算几何中的α-壳的概念应用到最小包容圆的计算过程,提出了一种精确有效的最小包容圆求解算法。
根据α-壳定义及最小包容圆性质,证明当1/α等于最小包容圆半径时点集的α-壳顶点共圆,1/α小于最小包容圆半径时α-壳不存在,1/α大于最小包容圆半径时随着1/α减小α-壳顶点数逐渐减小的规律。
将α-壳顶点数目作为搜索最小包容圆半径的依据,实现了最小包容圆半径的搜索和最小包容圆的求解。
关键词:计算机应用;优化算法;计算几何;最小包容圆;α-壳中图分类号:TP 391文献标识码:A 文章编号:1003-0158(2007)03-0097-05Algorithm for Minimum Circumscribed Circle Detection Based onComputational Geometry TechniqueZHANG Yong, CHEN Qiang( Key Laboratory for Advanced Manufacturing by Materials Processing Technology,Department of Mechanical Engineering, Tsinghua University, Beijing 100084, China )Abstract: α-hulls are applied to calculate the minimum circumscribed circle (MCC) of point set and an accurate and effective method for MCC detection is established through finding the least squares circle of the point set and iteratively approaching the MCC with recursive subdivision. Several theorems concerning the properties of α-hulls are presented. If 1/α is equal tothe radius of points’ MCC, all vertices of the α-hull will be on the same circle. When 1/α is larger than the MCC’s radius, the number of vertices of α-hulls will decrease with decreasing of 1/α, andthe number of vertices’ number will reach zero when 1/α is smaller than MCC’s radius. From the above rules, an algorithm for detecting MCC is developed, and experimental results show this algorithm is reliable.Key words: computer application; optimized algorithm; computational geometry; minimum circumscribed circle; α-hull收稿日期:2005-12-20基金项目:国家自然科学基金资助项目(50275083);高校博士点基金资助项目(20020003053)点集P的最小包容圆(有些文献称最小外接圆)是指包容P的所有圆中半径最小的圆(在该文中,若称“区域A包容集合B”是指B中所与元素均位于区域A的内部或A的边界上,下同)。
最小包容圆的概念广泛应用于计算机图形学、计量学、机械加工等领域。
最小包容圆(最小外接圆)法是进行圆度误差评定的一种重要方法。
目前对最小包容圆的求解大多采用优化搜索算法。
这些算法通常是将圆心作为优化参数、半径作为优化目标。
但是,这些优化算法通常计算时间长、效率低,甚至有时不能找到真正的最小包容圆。
计算几何是20世纪70年代出现的一个研究领域。
文献[1],[2]将计算几何中的V oronoi图应用到最小包容圆的求解,但是V oronoi图的计算比较复杂。
该文引入了计算几何中α-壳的概念,提出了一种精确、高效的最小包容圆求解算法。
1 α-壳(α-hull)的定义文献[3]中给出了平面内点集P的α-壳的定义,α-壳是凸壳概念的延伸。
在定义α-壳之前,先给出了α-盘(α-disc)的定义(如图1)如下:定义1 对于任意实数α:当α>0时,α-盘定义为平面内半径为1/α的圆内包容的所有区域;当α=0时,α-盘定义为一条直线一侧的半平面;当α<0时,α-盘定义为平面内半径为-1/α的圆外及圆上的所有区域。
α>0α=0α<0图1 不同取值情况下的α-盘α-壳的定义如下:定义2 对于平面内有限点集P及实数α,所有包容P的α-盘的交集定义为点集P的α-壳,P中位于α-壳边界上的点称为α-壳的顶点。
从定义2可知,当α >0时,P的α-壳为所有包容P的半径为1/α的圆盘的交集;当α=0时,P的α-壳就是P的凸壳;当α<0时,P的α-壳的为所有不包含P中任意一点半径为-1/α的圆盘的补集的交集。
图2给出了上面3种情况下的α-壳。
(a) (b)-1/(c) (d)(a) α>0; (b) α =0; (c, d) α <0图2不同取值情况下α-壳根据α-壳的定义易得出下面结论:(1)当α >0时,对于点集P内的某一点,若能够找到一个通过该点且半径为1/α的圆包容点集P的所有点,那么该点必为点集P的α-壳顶点;(2)当α<0时,对于点集P内的某一点,若能够找到一个通过该点且半径为-1/α的圆使得P的所有点在圆外或者在圆上,那么该点必为点集P的α-壳顶点。
文献[4]对文献[5]计算凸壳的算法进行了拓展,得出平面点集α-壳的计算算法,该算法的时间复杂度为O(n)2 几则定理的提出根据α-壳的定义及有关性质,该文推导出如下定理。
定理1设P为平面内有限点集;P的最小包容圆为圆C0,半径为R0;R为实数,且满足R>R0。
那么,点集P中位于圆C0上的点一定为·98· 工 程 图 学 学 报 2007年P的α-壳(1/α =R)的顶点。
证明设点p为P中位于最小包容圆上的点,那么过p一定能作一个半径为R0的圆,且该圆包容P中所有点。
因R >R0,那么,过p一定能够作一个半径为R的圆包容P中所有点。
根据α-壳的定义,点p一定是P的α-壳(1/α = R)的顶点。
定理1证毕。
定理2设P为平面内有限点集;P的最小包容圆为圆C0,半径为R0;R为正实数,且满足R<R0。
那么,点集P的α-壳(1/α = R)不存在。
证明假设点集P的α-壳(1/α =R)存在,那么至少有一点p为α-壳的一个顶点,根据α-壳的定义,过点p至少可以做一个半径为R的圆C 包容P的所有点。
由于圆C包容P的所有点,那么R一定大于或等于P的最小包容圆半径R0,这与已知条件R<R0矛盾。
假设不成立。
定理2证毕。
定理3设P为平面内有限点集,那么,点集P只有一个最小包容圆。
证明如图3,假设点集P有两个最小包容圆C1和C2,其半径分别为R1和R2。
若C1和C2同时为P的最小包容圆成立,那么,必有R1=R2成立。
由于圆C1和C2为两个不同的圆,那么,两圆的圆心点必为平面内不同的两个点。
圆C1和C2相交于两个点A和点B,因为圆C1和C2均包容点集P,记P⊆C1和P⊆C2,那么,有P⊆(C1∩C2)从图3可以看出,以AB为直径作圆C3,必有(C1∩C2)⊂C3那么,P⊆C3即圆C3包容点集P。
因|AB|<2R1,即圆C3的半径小于圆C1、C2的半径,这与圆C1、C2为最小包容圆相矛盾,假设不成立。
定理3证毕。
定理4 设P为平面内有限点集,点集P1和点集P2分别为P的α1-壳(1/α1=R1)和α2-壳(1/α2=R2)的顶点,R0为P的最小包容圆半径,且满足0<R0≤R1<R2,那么,P1⊆P2。
ABC2C3C1图3 定理3证明用图证 明 设点p为点集P1中的任意一点,那么过点p至少一定可以做一个半径为R1的圆C1包容P中的所有点,即P⊂C1因R1<R2,那么,过点p一定可以做一个半径为R2的圆C2包容圆C1,即C1⊂C2那么P⊂C2即圆C2包容P,又点p在圆C2上,那么,点p为点集P的α2-壳(1/α2=R2)的顶点,即p⊂P2因p为P1中的任意一点,那么P1中所有点都属于P2,即P1⊆P2定理4得证。
从定理4可以看出,对于某一已知点集P,当1/α由R2减小到R1时,P的α-壳顶点数目减少或不变。
定理5 设P为平面内有限点集,R0为P的最小包容圆半径,那么,P的α-壳(1/α =R0)所有顶点共圆。
证明设点p为P的α-壳(1/α =R0)的任意顶点,那么过点p至少能过作一个半径为R0的圆C包容P的所有点。
因R0为P的最小包容圆半径,由定理3可知圆C必为P的最小包容圆。
那么,点p在P的最小包容圆上。
同理可证,对于P的α-壳(1/α =R0)的任意顶点均在P的最小包容圆上。
定理5得证。
第3期 张 勇等:一种基于计算几何方法的最小包容圆求解算法 ·99·3 最小包容圆求解算法由前面定理1~5可知,对于已知的平面中点集P={p1, p2, …, p m},P的最小包容圆半径为R0,任意的正实数r,P的α-壳(1/α=r)的顶点数目n与r有关,并满足下面规律:(1)r =+∞时,n为P的凸壳顶点数目;(2)r>R0时,随着r的减小,n逐渐减小;(3)r =R0时,α-壳(1/α =r)的所有顶点共圆;(4)r <R0时,n=0。
从n与r的上述变化关系,对于某一点集P 可以根据其α-壳(1/α =r)的顶点数目判断r与其最小包容圆半径R0的大小关系,并不断改变r,计算P的α-壳(1/α =r)的顶点,当α-壳(1/α =r)的所有顶点共圆时的顶点即为位于P的最小包容圆上的点,求得最小包容圆半径即可。