分享到:

平面扩展简单多边形的布尔运算

1 引  言平面简单多边形的布尔运算是计算几何、计算机图形学中的基础问题之一 ,在几何和实体造型等领域中有着广泛的应用价值 例如 ,平面消隐操作的基础就是二维平面多边形的布尔运算 因此 ,设计一个稳定而有效的多边形布尔运算的算法是非常必要的 国内外许多专家对此进行了大量有益的探索 ,并提出了相应的算法 ,但是这些算法大部分都没有建立完整的数学模型 ,只局限于对凸多边形进行操作[1 2 ] 还有一些算法虽然可以对任意多边形进行操作[3 5] ,但是运算过程大多比较烦琐 ,而且在某些特殊情况下还不是很有效 ,甚至无法得出正确的结果 最近 ,Rivero等提出了一种非常有效的布尔运算算法[6 ] ,可以对任意平面简单多边形 (凸或凹、有洞或无洞 )进行交、并、差的操作 该算法基于一种对几何模型进行数学形式化的算法[7] ,无需考虑布尔运算中各种烦琐的特殊情况 ,从而使系统有较高的效率和较强的鲁棒性 但是 ,他们只给出了完全用...  (本文共8页) 阅读全文>>

《中国科技教育》2016年12期
中国科技教育

化多边形为多边形

在上一篇文字中,我们谈论了化三角形为正方形的问题。事实上,该文章的思路可以说已经证明了如下性质。性质1:任意1个三角形可以分割成4个多边形(三角形或四边形),这些多边形经过平移和旋转,可以拼合成1个长方形。现在,我们来看看把长方形分割成若干个多边形,然后拼合成正方形的问题。先看看下面的图1至图3,这3个图中长方形的边长分别是:7和8,3和11,2和12。从图中我们可以看到,这3个长方形分...  (本文共2页) 阅读全文>>

《智能计算机与应用》2012年01期
智能计算机与应用

基于凸包求解的简单多边形方向判断新算法

0引言对于简单多边形的方向问题的研究,已经有研究者提出了一些算法[1-4],应用这些算法,能够很好地判断多边形的方向。简单多边形就是由n个顶点P1,P2,…,Pn依次连接而成的图形,图形在顶点处相交,在其内部不相交,如果在内部发生相交即为非简单多边形,本文所指多边形均为简单多边形。判断多边形的方向有着实际的应用,比如在图形渐变中的图形顶点的对应问题[5,6]。如果对应图形的方向一致,在图形渐变中的差值路径就容易保持一致,从而使得图形渐变自然流畅,否则容易扭曲变形[7,8]。本文采用的凸包求解的方法来判断多边形方向的算法,是在对Graham ScanA算法[9]深入研究后得到的新算法。Graham ScanA求解简单多边形凸包的算法简洁高效,但是对于未确定方向的简单多边形,该算法需设定一个方向后,方可求解其凸包。基于此,本文假定多边形整体呈逆时针方向或顺时针方向,通过中间求解点来判断求解凸包的正确性,从而判断得出多边形假定方向的正...  (本文共3页) 阅读全文>>

《黄冈师范学院学报》2007年03期
黄冈师范学院学报

基于简单多边形相邻凹点关系的凸剖分算法

如何剖分任意多边形是计算几何、图形、图像处理等领域的一个经典问题,现有简单多边形剖分算法可分为三大类。第一类算法[2,3]基本思想是首先形成多边形的一个初始三角网,再利用局部变换的方法对初始三角网进行修改,最终实行多边形D elaunay剖分,但时间复杂度为O(n3)。第二类算法[4,5]基本思想是每次从多边形中切割一个有效的D elaunay三角形,最终形成一个满足D elaunay规则的多边形的三角网,时间复杂度为O(n2)。第三类算法基本思想是将简单多边形分解为多个凸多边形,再对每个凸多边形进行D elaunay剖分,最后合并凸边形,它在运行时间方面要优于前两种方法,将该方法用于简单多边形区域内点集D elaunay三角剖分中会使时间复杂度大大降低。本文着重就第三类算法中的简单多边形的凸剖分问题作探讨。依据简单多边形相邻凹点连线之间的关系,可以将简单多边形分为三大类:第一类多边形相邻凹点连线存在相交情况;在多边形相邻凹点连...  (本文共5页) 阅读全文>>

《小型微型计算机系统》2000年09期
小型微型计算机系统

基于凹凸顶点判定的简单多边形的三角剖分

1 引 言三角形是最简单的一个平面图形 ,所以 ,在计算几何、计算机图形学、曲面逼近、科学计算可视化等领域都有广泛的应用 .因此对多边形的三角剖分是常用算法 .目前已有许多算法 ,特别是基于 Delaunay三角剖分的各种算法 .文〔1〕中对二维任意域内点集的 Delaunay三角剖分进行了理论研究 ,文〔2〕则在文〔1〕的基础上提出了二维任意域内点集的 Delaunay三角剖分算法 .但时间复杂性为 O( N2 ) ,其中 N是点数 .文〔3〕中给出了一个任意多边形的 Delaunay三角剖分 ,其时间复杂性也为 O( N2 ) .在〔4〕中提出了一种基于凹凸顶点判定的简单多边形 Delaunay三角剖分算法 ,该算法首先求出简单多边形的凹凸顶点 ,然后 ,逐次割去一个权值最大的三角形构造三角形网格 ,并重新计算受影响的顶点的凹凸性 ,重复这个过程 ,直到边界顶点链表为空时结束 ,最后按最大 -最小内角准则 ,通过局部变换 ,...  (本文共2页) 阅读全文>>

《甘肃科学学报》2000年04期
甘肃科学学报

一种求简单多边形凸包的算法

在模式识别、人工智能及软件工程等计算机的很多应用领域中 ,都涉及到计算任意多边形的凸包问题。目前 ,关于平面上具有 n个点的点集 S,求 S凸包的方法由文献 [1 ]给出 :1采用顶点排序的回溯算法 ;2不采用顶点回溯的算法。但这两种算法 ,在最坏的情况下的时间复杂性可达 O(n2 )。设 P为 n个顶点的简单多边形 ,深入讨论 P的多边形凸包的计算问题 ,给出一种时间复杂性 O(nlogn)的算法。1 准备知识定义 设简单多边形 P=(P1 ,P2 ,… ,Pn)满足[2~ 3] 下列条件 :(1 ) P的顶点沿顺时针方向列出 ,即沿 Pi Pi+1 前进时 ,P的内部区域总在前进方向的右侧(其中 i=1 ,2 ,… ,n;Pn+1 =P1 )。(2 )任意三相邻顶点 Pi- 1 ,Pi,Pi+1 均不共线 (其中 i=1 ,2 ,… ,n;Pn+1 =P1 )。其实质是 P1 ,P2 ,… ,Pn是给定多边形的 n个顶点 ,...  (本文共3页) 阅读全文>>