利用圆族逼近任意二维连通图形的方法

文档序号:6481287阅读:197来源:国知局
专利名称:利用圆族逼近任意二维连通图形的方法
技术领域
本发明涉及一种利用圆族逼近任意二维连通图形的方法,主要适用于动画模拟、二维图形间干涉检测、布局优化设计中约束形式的表达。

背景技术
文献“Michael Macri,Suvranu De,Mark S.Shephard.2003,Hierarchical tree-baseddiscretization for the method of finite spheres.Computers and Structures.81789-803.”公开了一种利用圆族逼近二维图形的四叉树法,该方法将二维图形几何外形用圆族近似,即将二维图形划分为若干层正方形,再求出各正方形的外接圆,进而得到二维图形的近似圆族。由于各分层产生的近似圆大小相同,因而利用四叉树法逼近二维图形需要的近似圆数目多,无形中增加了工作量。
当逼近误差为0.1时,逼近10*1的矩形需要40个近似圆;当逼近误差为0.03时,逼近两直角边分别为0.25和0.33的直角三角形需要37个近似圆。


发明内容
为了克服现有技术利用四叉树法逼近二维图形需要的近似圆数目多而导致工作量大的不足,本发明提供一种利用圆族逼近任意连通的二维几何图形的方法,通过带间隙的三步划分法,可以利用较少的近似圆逼近二维图形。
本发明解决其技术问题所采用的技术方案一种利用圆族逼近任意二维连通图形的方法,其特点是包括下述步骤 (a)定义逼近误差tol和间隙△,△在零到

之间取值,并将非圆形连通的二维图形轮廓的曲线段用直线段逼近,得到待划分的多边形,以绕多边形轮廓逆时针方向定义各边线段的矢量方向; (b)依次对多边形的所有凸角点划分近似圆,近似圆的圆心位于凸角角平分线上,且该圆上过凸角点的且与凸角角平分线垂直的弦的长度等于△; (c)依次对多边形的所有凸扇形区划分近似圆,将多边形凸扇形区所在两条边上未被近似圆覆盖的大于△的线段作为剩余线段。若该两条边上剩余线段数目乘积为零,则此凸扇形区划分完毕。否则取凸扇形区所在两条边中以凸角点为起点的那条边上距凸角点最近的剩余线段,沿该剩余线段起点剪掉△,得到新的剩余线段;取凸扇形区所在另一条边上距凸角点最近的剩余线段,沿该剩余线段末点剪掉△,得到另一条新的剩余线段;候选近似圆经过上述两条新的剩余线段上距凸角点最近的两端点且与凸扇形区所在两条边的干涉量均为tol。若该候选圆满足多边形其它边的逼近误差要求,则该圆即为该凸扇形区的一个近似圆,继续依照如上方法对该凸扇形区划分近似圆,否则该扇形区划分完毕,对其它凸扇形区依照同样方式划分近似圆; (d)对多边形各边的剩余线段划分近似圆剪掉待划分的边上被以前所有近似圆覆盖的线段,得到待划分边上大于△的线段作为剩余线段。若该待划分边上剩余线段数目为零,则该边剩余线段划分完毕。否则将距待划分边起点最近的剩余线段沿其起点剪掉△,得到新的剩余线段。若该新的剩余线段长度不大于2tol,则先定义圆心在该剩余线段的中点,直径等于该剩余线段长度的圆,若有多边形的顶点位于该圆内,则该圆即为该多边形的一个近似圆,且待划分边的剩余线段划分结束;否则定义两种候选圆,其中一种过剩余线段的起点、末点和多边形上除待划分边的端点外且位于该边左侧的顶点,另一种过剩余线段的起点、末点且和多边形边界的最大干涉量不小于tol,从这些候选圆中选半径最小的一个候选圆,若该圆不满足其它边逼近误差要求,则对该圆进行缩放处理,即保证近似圆过剩余线段的起点、末点且满足多边形各边逼近误差要求。若该新的剩余线段长度大于2tol,定义两种候选近似圆,其中一种过该剩余线段起点和多边形上除待划分边的端点外且位于待划分边左侧的顶点,且与待划分边的干涉量为tol,另一种过剩余线段的起点和待划分边的终点且与待划分边的干涉量为tol,从两种近似圆中取半径最小的一个候选圆,若该圆不满足其它边逼近误差要求,则对该圆进行缩放处理,即在满足多边形各边逼近误差要求下,保证近似圆过剩余线段的起点且与待划分边的干涉量为tol。依照如上方法对该待划分边继续划分近似圆直到对该边划分完毕,多边形其它边剩余线段的划分方法与上述方法相同。
本发明的有益效果是由于通过带间隙的三步划分法,即第一步,采用简单几何定义和关系推导得到各近似圆的圆心位置和半径;第二步,以二维图形整体为划分对象,最大限度的发挥每个近似圆对二维图形的覆盖作用;第三步,通过在相邻近似圆间引入间隙△,再次减少近似圆的数目。实现了利用较少的近似圆族逼近二维图形,在同等逼近误差条件下,将逼近10*1的矩形所需的40个近似圆下降到17个近似圆;在同等逼近误差条件下,△取不同值时,将逼近两直角边分别为0.33和0.25的直角三角形所需的37个近似圆下降到5个到6个近似圆。
下面结合附图和实施例对本发明作详细说明。



图1是本发明方法中△取上限时的极限情形示意图。
图2是本发明方法实施例1中对各凸角点划分近似圆的结果示意图。
图3是本发明方法实施例1中对各边的剩余线段划分近似圆的结果示意图。
图4是图3中区域①的放大图。
图5是图3中区域②的放大图。
图6是本发明方法实施例2中对各凸角点划分近似圆的结果示意图。
图7是本发明方法实施例2中对凸角点C对应扇形区和边BC的剩余线段划分近似圆的结果示意图。
图8是本发明方法实施例3中对各凸角点划分近似圆的结果示意图。
图9是本发明方法实施例3中对凸角点A对应扇形区划分近似圆示意图。
图10是本发明方法实施例3中对凸角点B对应扇形区划分近似圆示意图。
图11是本发明方法实施例3中对凸角点C对应扇形区划分近似圆示意图。
图12是本发明方法实施例3中对边AB、BC上剩余线段划分近似圆的结果示意图。

具体实施例方式 本发明利用圆族逼近二维图形的方法,总体思路包括如下四个关键环节 1.按误差要求沿多边形凸角点划分近似圆; 2.按误差要求沿多边形凸扇形区划分近似圆; 3.按误差要求沿多边形各边的剩余线段划分近似圆; 4.近似圆与多边形其它边的干涉情况检测与干涉量的计算。
现对上述四个关键环节作具体说明 以顶点序列为{P1,P2,…,Pn}的给定多边形的近似圆划分为例说明各环节具体实施方法。设逼近误差为tol,间隙为△。逼近误差指近似圆族边界相对于原二维图形边界的最大允许超出量,间隙△指原二维图形边界被近似圆覆盖后的剩余线段的最大长度,可在0到

之间取值。当△为零时,近似圆族将二维图形外轮廓完全覆盖,当△为

时,即为满足两多边形互不干涉时△取最大值,此时为两多边形上四个半径均为tol的近似圆圆心恰好分别位于一个边长为2tol的正方形的四个顶点上的极限情形。
1.按误差要求沿多边形凸角点划分近似圆设Pi为其中的一个凸角点,为了保证在满足多边形的近似圆族互不干涉的条件下多边形也互不干涉,本发明沿凸角点Pi划分得到的近似圆

具有这样的特点它的圆心

位于Pi对应顶角的角平分线Vib上,同时它的过Pi且与Vib相垂直的弦的长度等于间隙△。其中Pi对应的顶角大小为θi且其角平分线的单位矢量为Vie。
(1)近似圆

的半径

的计算 其中a=cos2(θi/2),b=-2tol,c=tol2+(Δ/2)2sin2(θi/2) (2)近似圆

的圆心位置

的计算 2.按误差要求沿多边形凸扇形区划分近似圆设该多边形已经完成了所有凸角点的近似圆划分,Pi为其中一个凸角点,Vie为Pi对应凸角角平分线的单位矢量。下面沿Pi对应的凸扇形区进行一次近似圆划分 (1)在多边形各边上除去被前面所有近似圆覆盖的线段,得到多边形各边上大于△的未被覆盖线段作为该边的剩余线段。若第i条边和第i-1条边上剩余线段数目乘积为零,则该凸扇形区划分完毕,否则分别取第i条边和第i-1条边上距Pi最近的两条剩余线段,在各剩余线段上分别从距Pi最近的一端出发,裁剪掉△得到两条新的剩余线段,记为Si1Ei1,
(2)定义候选近似圆C1,该圆经过Si1和

且与多边形的第i条边和第i-1条边的干涉量均为tol。记C1与第i条边的另一交点为X1,则分别依据式(3)和式(4)来计算C1的半径r1和圆心,其中r1和

是未知量。
(3)检查C1是否满足对多边形其它边界的逼近误差要求(检验方法在第四环节中说明),若满足则C1即为沿Pi对应的扇形区划分得到的一个近似圆,且重复上述(1)到(3)步;若不满足在则已完成对Pi对应的凸扇形区的近似圆的划分。
依据以上(1)到(3)步对所有凸角点对应的扇形区划分近似圆。
3.按误差要求对多边形各边的剩余线段划分近似圆定义两个单位矢量Z(0,0,1)和沿多边形的第i条边PiPi+1进行一次划分 (1)在多边形各边上除去被前面所有近似圆覆盖的线段,得到多边形各边的大于△的剩余线段。设第i条边上剩余线段数目为ni,若ni为零,则第i条边已划分完毕,否则继续下面的步骤。
(2)将第i条边上距Pi最近的剩余线段从起点处剪掉△,得到新的剩余线段
(3)当时,先预定义一个初始半径为

且圆心为

的圆,若多边形的顶点中存在位于该圆内部的点,则该圆即为待求的近似圆且边PiPi+1的划分全部结束,否则再预定义一组初始半径为

的候选近似圆{Ci1,Ci2,…,Cin},其中Cik(k≠i,i+1)过Si1、

和Pk,Ci(i+1)过Si1和

且与给定多边形边界的最大干涉量不小于tol,而它们的半径的更新则如下

当Pk不在边i上时,当且仅当Pk位于矢量

的左侧时按照式(5)和式(6)来计算Cik的半径rik,tik为Cik与边PiPi+1的干涉量,其中干涉量的计算参照“近似圆与多边形其它边的干涉情况检测与干涉量的计算”。依据式(7)计算圆心。


当Pk为边PiPi+1的终点时,在不改变Cik过点Si1和

的前提下循环执行将Cik与边PiPi+1的干涉量减半直至Cik与给定多边形的最大干涉量不小于tol,按照式(8)和式(9)来计算第t次减半得到的Cik的半径rik,tik为Cik与边PiPi+1的干涉量,依据式(7)计算圆心。
从已完成半径更新的{Ci1,Ci2,…,Cin}中取出半径最小的那个近似圆记为Ci,半径记为ri,计算它与多边形各边的干涉量{ti1,ti2,…,tin},记最大干涉量为timax,若timax≤tol,则Ci即为所需要的近似圆CiE,否则对Ci进行以下的缩放处理方可得到CiE将所有满足tij>tol的tij组成序列



依次代入式(10)求解得到

则CiE的半径而CiE的圆心OiE可以依据式(7)计算,式中 其中θ=θi-θk-π/2;a=(cosθ)2,θi和θk分别为矢量



与X轴正方向的夹角。
(4)当时,先预定义一组初始半径为-1的候选近似圆{Ci1,Ci2,…,Cin}Cik过点Si1和Pk(k≠i)且与第i条边的干涉量恰好为tol,下面来更新这些近似圆的半径

当Pk不为边PiPi+1的终点时,当且仅当Pk位于矢量

的左侧时按照式(11)来计算Cik的半径rik。
其中a=(h/tol+sin(θ))2+(cos(θ))2,b=2cos(θ)*(h/tol),c=(h/tol)2-(h/tol+sin(θ))2,

当Pk为边i的终点时,Cik的半径rik按照式(12)来计算。
从已完成半径更新的{Ci1,Ci2,…,Cin}中取出最小正半径对应的那个近似圆记为Ci,半径记为ri,其圆心可以依据式(13)计算。计算它与给定多边形各边的干涉量{ti1,ti2,…,tin},记最大干涉量为timax,若timax≤tol,则Ci即为所需要的近似圆CijE,否则对Ci进行以下的缩放处理保证Ci过Si1且与边PiPi+1的干涉量为tol,将所有满足tij>tol的tij组成序列





平行,则否则依据式(14)计算
其中θ=θi-θk-π/2,θi和θk分别为矢量



与X轴正方向的夹角;a=(1+sin(θ))/(2tol);b=cos(θ); 则CijE的半径而CijE的圆心OijE可以依据式(13)计算,式中 (5)重复上述(1)到(4)步,完成对多边形第i条边剩余线段的近似圆划分。
对多边形各条边实施上述(1)到(5)步,完成对多边形各边剩余线段的近似圆划分。
4.近似圆与多边形其它边的干涉情况检测与干涉量的计算该环节在上述三个环节中都有应用。如对半径为

的近似圆

与顶点序列为{P1,P2,…,Pn}的多边形的边PjPj+1(j≠i)进行干涉检测。
(1)从圆

的圆心

做到待检测边PjPj+1的垂线,垂足为LNj。
(2)若且式(15)成立,则

与边PjPj+1不干涉;若式(15)不成立,则

与边PjPj+1干涉。
若且式(16)成立,则

与边PjPj+1不干涉;若式(16)不成立,则

与边PjPj+1干涉。
近似圆

与边PjPj+1的干涉量tj的计算如式(17)。

式(17)中当近似圆圆心位于多边形外时取加号,否则取减号。
实施例1参照图2~5。对10*1矩形ABCD划分近似圆,逼近误差tol为0.1,△取0.08。
(1)按误差要求分别沿矩形凸角点A、B、C、D划分近似圆。以凸角点A的近似圆划分为例依据式(1)求得凸角点A对应近似圆C1A的半径r1A=0.3356,且在式(1)中a=0.5,b=-0.2,c=0.0108,由式(2)得圆心位置O1A(0.2356,0.2356)。同样求出凸角点B对应近似圆的半径和圆心位置r1B=0.3356,O1B(9.7644,0.2356);凸角点C对应近似圆的半径和圆心位置r1C=0.3356,O1C(9.7644,0.7644);凸角点D对应近似圆的半径和圆心位置r1D=0.3356,O1D(0.2356,0.7644)。
(2)按误差要求沿多边形凸扇形区划分近似圆。以对凸角点A对应的扇形区划分近似圆为例。
(i)在边AB、DA上剪掉近似圆覆盖的线段,得到未被覆盖的线段

其中A1(0.4746,0),B′1(9.5254,0),D1(0,0.5254),A′1(0,0.4746),因所以边DA上无剩余线段,凸角点A对应扇形区无近似圆。
其它几个扇形区与凸角点A对应扇形区的近似圆划分相似,均无符合的近似圆。转入对多边形各边的剩余线段划分近似圆。
(3)按误差要求对多边形各边的剩余线段划分近似圆。
首先对边AB的剩余线段划分近似圆。
(i)AB上的剩余线段仍为



沿A1截掉△得剩余线段

其中A2(0.5546,0)。
(ii)预定义三个初始半径为-1的候选近似圆C12、C13、C14,它们分别为过A2和B、C、D且与边AB干涉量为tol的圆。由式(12)求得C12的半径r12=111.5695,由(11)分别得C13、C14的半径r13、r14,其中r13=24.3712,r14=0.9949。
(iii)因而最小正半径对应的那个近似圆为C14,由式(13)得圆心经过C14与各边干涉检测和干涉量的计算,求得C14与各边的干涉量依次为0.1,0,0.8898,0.0056。缩放处理四个干涉量中只有0.8898>tol,由式(14)和式(13)最终求得边AB剩余线段的第一个近似圆C11E,其半径圆心O11E(0.8863,0.5)。
(iv)与上述求解过程相似,依次得AB上剩余线段的第二个到第十二个近似圆C1jE(2≤j≤12),其圆心依次为O12E(1.6297,0.5),O13E(2.3731,0.5),O14E(3.1165,0.5),O15E(3.8599,0.5),O16E(4.6033,0.5),O17E(5.3467,0.5),O18E(6.0901,0.5),O19E(6.8335,0.5),O110E(7.5769,0.5),O111E(8.3203,0.5),O112E(9.0637,0.5),半径均为0.6。
此时AB上的剩余线段剪掉△得到剩余线段

其中A3(9.4754,0.0),B′1(9.5254,0.0),预定义初始半径为0.025,圆心为0.5*(A3+B′1)即(9.5004,0)的近似圆,而A、B、C、D均不位于该圆内部;因而,需再定义一组初始半径为0.025的候选近似圆C12、C13、C14,其中C13过A3、B′1和C,由式(5)得t13=0.6245,由式(6)得r13=0.625;C14过A3、B′1和D,由式(5)得t14=45.6089,由式(6)得r14=45.6089;C12过A3、B′1且与各边干涉量的最大值不小于tol,按照式(8)和式(9)来计算,将C12与AB的干涉量减半六次,得t12≈0,r12=0.8002。r13、r14、r12中值最小的为r13,由式(7)得圆心坐标(9.5004,0.6245),而C13与各边干涉量分别为0.0005,0.1254,0.2495,0。最大干涉量0.2495>tol,由式(10)得近似圆C113E,其半径由式(7)得圆心 此时,边AB、BC、CD、DA上已无剩余线段。
综上,利用本发明方法对10*1矩形以0.1的逼近误差划分近似圆,△取0.08,得到17个近似圆。
实施例2参照图6~7。对两直角边分别是0.25、0.33的直角三角形ABC划分近似圆,逼近误差tol为0.03,△取0.024。
(1)按误差要求分别沿凸角点A、B、C划分近似圆。以凸角点A的近似圆划分为例依据式(1)求得凸角点A对应近似圆C1A的半径r1A=0.1007,由式(2)得圆心位置O1A(0.0707,0.0707)。同样求出凸角点B对应近似圆的半径和圆心位置r1B=0.0530,O1B(0.2038,0.0230);凸角点C对应近似圆的半径和圆心位置r1C=0.0432,O1C(0.0132,0.2908)。
(2)按误差要求沿多边形凸扇形区划分近似圆。
(i)首先对凸角点A对应的扇形区划分近似圆。
在边AB、CA上剪掉近似圆覆盖的线段,得到线段

其中A1(0.1424,0),B′1(0.1561,0),C1(0,0.2497),A′1(0,0.1424),而因而边AB上无剩余线段,因而凸角点A对应的扇形区划分完毕。
(ii)同理边AB的剩余线段数目为零,因而对凸角点B对应扇形区的划分完毕。
(iii)对凸角点C对应的扇形区划分近似圆边BC上的剩余线段

其中B1(0.193,0.075),B2(0.156,0.123),B3(0.145,0.139),C′1(0.048,0.266)。边BC上距C点最近的剩余线段为

边CA上剩余线段为

从剩余线段

上距C近的一端截取△后得到线段

从剩余线段

上距A近的一端截取△后得到线段

其中C2(0.2257,0),C′2(0.063,0.247)。定义候选近似圆C1,依据式(3)解得r1=0.087,依据式(4)求得圆心坐标O1(0.057,0.160)。圆C1满足多边形ABC其它边逼近误差要求,则圆C1为凸角点C对应扇形区的一个近似圆。此时边CA上已无剩余线段,因而凸角点C对应的扇形区划分完毕。
(3)按误差要求对多边形各边的剩余线段划分近似圆。
只有边BC上有剩余线段,其剩余线段为

将线段

沿B1剪掉△后得到线段

其中B4(0.179,0.094),预定义初始半径为

且圆心为0.5*(B2+B4)的圆,因多边形ABC的顶点均不在该圆内,因而需再定义一组初始半径为0.019的候选近似圆C21、C23。其中C21过点B2、B4、A,由式(5)得t21=0.099,由式(6)得r21=0.101;C23过B2和B4且与多边形边界最大干涉量不小于tol,依据式(8)和式(9)来计算,将C23与边BC的干涉量减半四次得t23=0.0011,r23=0.1462。将C21、C23中半径最小的候选近似圆C21按照式(10)缩放后得近似圆C21E的半径由式(7)得O21E(0.1,0.057)。此时边BC上已无剩余线段。多边形ABC已划分完毕。
综上,利用本发明方法对两直角边分别是0.25、0.33的直角三角形ABC划分近似圆,逼近误差tol为0.03,△取0.024,得到5个近似圆。
实施例3参照图8~12。对两直角边分别是0.25、0.33的直角三角形ABC划分近似圆,逼近误差tol为0.03,△取0。
(1)按误差要求分别沿凸角点A、B、C划分近似圆。以凸角点A的近似圆划分为例依据式(1)求得凸角点A对应近似圆C1A的半径r1A=0.102,由式(2)得圆心位置O1A(0.072,0.072)。同样求出凸角点B对应近似圆的半径和圆心位置r1B=0.054,O1B(0.202,0.024);凸角点C对应近似圆的半径和圆心位置r1C=0.044,O1C(0.014,0.288)。
(2)按误差要求沿多边形凸扇形区划分近似圆。
(i)首先对凸角点A对应的扇形区划分近似圆在边AB、CA上剪掉近似圆覆盖的线段,得到线段

其中A1(0.150,0),B′1(0.154,0),C1(0,0.246),A′1(0,0.138)。定义候选近似圆C1,依据式(3)解得r1=0.306,依据式(4)求得圆心坐标O1(0.276,0.276)。而圆C1与边BC干涉量为0.493,因而该候选圆不满足多边形各边误差要求,对凸角点A对应的扇形区划分完毕。
(ii)对凸角点B对应扇形区的划分近似圆边BC上的剩余线段

其中B1(0.192,0.077),B2(0.169,0.107),B3(0.137,0.149),C′1(0.049,0.263)。边BC上距B点最近的剩余线段为

边AB上剩余线段仍为A1B′1。定义候选近似圆C1,依据式(3)解得r1=0.116,依据式(4)求得圆心坐标O1(0.076,0.087)。而圆C1与边BC干涉量为0.04,因而该候选圆不满足多边形各边误差要求,对凸角点B对应的扇形区划分完毕。
(iii)对凸角点C对应的扇形区划分近似圆边BC上的剩余线段仍为

边BC上距C点最近的剩余线段为

边CA上剩余线段为

定义候选近似圆C1,依据式(3)解得r1=0.079,依据式(4)求得圆心坐标O1(0.049,0.184),该圆满足多边形误差要求。此时边CA上已无剩余线段,因而凸角点C对应的扇形区划分完毕。
(3)按误差要求对多边形各边的剩余线段划分近似圆。
(i)对边AB上剩余线段的划分边AB上剩余线段为

预定义初始半径为

且圆心为0.5(A1+B′1)的圆,因多边形ABC的顶点均不在该圆内,因而需再定义一组初始半径为0.02的候选近似圆C12、C13。其中C13过点A1、B′1、C,由式(5)得t13=0.204,由式(6)得r13=0.205;C12过A1和B′1且与多边形边界最大干涉量不小于tol,依据式(8)和式(9)来计算,将C12与边AB的干涉量减半三次得t12=0.003,r12=0.081。将C12、C13中半径最小的候选近似圆C12按照式(10)缩放后得近似圆C12E的半径由式(7)得O12E(0.152,0.068)。此时边AB上已无剩余线段。
(ii)对边BC上剩余线段的划分边BC上剩余线段为

其中B4(0.125,0.165),预定义初始半径为

且圆心为0.5(B3+B4)的圆,因多边形ABC的顶点均不在该圆内,因而需再定义一组初始半径为0.02的候选近似圆C21、C23。其中C21过点B3、B4、A,由式(5)得t21=0.105,由式(6)得r21=0.106;C23过B3、B4且与多边形边界最大干涉量不小于tol,依据式(8)和式(9)来计算,将C23与边BC的干涉量减半五次得t12=0,r12=0.152。将C21、C23中半径最小的候选近似圆C21按照式(10)缩放后得近似圆C21E的半径由式(7)得O21E(0.059,0.102)。此时边BC上已无剩余线段。多边形ABC已划分完毕。
综上,利用本发明方法对两直角边分别是0.25、0.33的直角三角形ABC划分近似圆,逼近误差tol为0.03,△取0,得到6个近似圆。
权利要求
1、一种利用圆族逼近任意二维连通图形的方法,其特征在于包括下述步骤
(a)定义逼近误差tol和间隙Δ,Δ在零到
之间取值,并将非圆形连通的二维图形轮廓的曲线段用直线段逼近,得到待划分的多边形,以绕多边形轮廓逆时针方向定义各边线段的矢量方向;
(b)依次对多边形的所有凸角点划分近似圆,近似圆的圆心位于凸角角平分线上,且该圆上过凸角点的且与凸角角平分线垂直的弦的长度等于Δ;
(c)依次对多边形的所有凸扇形区划分近似圆,将多边形凸扇形区所在两条边上未被近似圆覆盖的大于Δ的线段作为剩余线段。若该两条边上剩余线段数目乘积为零,则此凸扇形区划分完毕。否则取凸扇形区所在两条边中以凸角点为起点的那条边上距凸角点最近的剩余线段,沿该剩余线段起点剪掉Δ,得到新的剩余线段;取凸扇形区所在另一条边上距凸角点最近的剩余线段,沿该剩余线段末点剪掉Δ,得到另一条新的剩余线段;候选近似圆经过上述两条新的剩余线段上距凸角点最近的两端点且与凸扇形区所在两条边的干涉量均为tol。若该候选圆满足多边形其它边的逼近误差要求,则该圆即为该凸扇形区的一个近似圆,继续依照如上方法对该凸扇形区划分近似圆,否则该扇形区划分完毕,对其它凸扇形区依照同样方式划分近似圆;
(d)对多边形各边的剩余线段划分近似圆剪掉待划分的边上被以前所有近似圆覆盖的线段,得到待划分边上大于Δ的线段作为剩余线段。若该待划分边上剩余线段数目为零,则该边剩余线段划分完毕。否则将距待划分边起点最近的剩余线段沿其起点剪掉Δ,得到新的剩余线段。若该新的剩余线段长度不大于2tol,则先定义圆心在该剩余线段的中点,直径等于该剩余线段长度的圆,若有多边形的顶点位于该圆内,则该圆即为该多边形的一个近似圆,且待划分边的剩余线段划分结束;否则定义两种候选圆,其中一种过剩余线段的起点、末点和多边形上除待划分边的端点外且位于该边左侧的顶点,另一种过剩余线段的起点、末点且和多边形边界的最大干涉量不小于tol,从这些候选圆中选半径最小的一个候选圆,若该圆不满足其它边逼近误差要求,则对该圆进行缩放处理,即保证近似圆过剩余线段的起点、末点且满足多边形各边逼近误差要求。若该新的剩余线段长度大于2tol,定义两种候选近似圆,其中一种过该剩余线段起点和多边形上除待划分边的端点外且位于待划分边左侧的顶点,且与待划分边的干涉量为tol,另一种过剩余线段的起点和待划分边的终点且与待划分边的干涉量为tol,从两种近似圆中取半径最小的一个候选圆,若该圆不满足其它边逼近误差要求,则对该圆进行缩放处理,即在满足多边形各边逼近误差要求下,保证近似圆过剩余线段的起点且与待划分边的干涉量为tol。依照如上方法对该待划分边继续划分近似圆直到对该边划分完毕,多边形其它边剩余线段的划分方法与上述方法相同。
全文摘要
本发明公开了一种利用圆族逼近任意二维连通图形的方法,首先将非圆形二维图形的曲线段用直线段逼近,得到该图形的逼近多边形。依次对所得多边形的凸角点、凸扇形区和各边的剩余线段划分近似圆。该方法采用简单几何定义和关系推导得到各近似圆的圆心位置和半径;最大限度的发挥每个近似圆对二维图形的覆盖作用;通过在相邻近似圆间引入间隙,再次减少近似圆的数目。实施例证明,该方法在同等逼近误差条件下,间隙值取上限时,将参考文献中逼近10*1矩形所需的40个近似圆下降到17个近似圆;将参考文献中逼近两直角边分别是0.25、0.33的直角三角形所需的37个近似圆下降到5个近似圆。
文档编号G06T17/20GK101515375SQ20091002157
公开日2009年8月26日 申请日期2009年3月17日 优先权日2009年3月17日
发明者张卫红, 桥 张, 朱继宏 申请人:西北工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1