一种三角剖分方法

文档序号:6419376阅读:574来源:国知局
专利名称:一种三角剖分方法
技术领域
本发明属于计算机辅助设计领域,特别涉及一种平面上散乱点集的三角剖分方法。
背景技术
在计算机辅助几何设计、曲面重构、有限元分析等领域中,经常要处理这样的问 题给定一组散乱数据Pi = Ixi, Yi, zj (i = 1,2,…,η),首先要在平面上对其进行三角 剖分,然后在三角域上构造插值曲面,最后以插值曲面为基础进行各种分析、计算及其它处 理。因此平面点集的三角剖分是图形学领域的一个基本问题。目前,比较常用的二维三角剖分的优化标准有最大最小距离标准、圆标准、最 大-最小角标准、最大-最小高标准等。这些标准的一个基本出发点就是尽量避免平面三角 形出现太尖的情况,也就是避免出现三角形内角太小的情况。因为根据逼近论的分析结果, 三角曲面的逼近误差与三角区域的最小内角有关,避免过尖的三角形就可提高逼近精度。Delaunay三角剖分具有最小内角最大以及平均形态比最大的性质,因此它是给定 区域的点集的最佳三角剖分[1]。长期以来,许多学者都在研究构建Delaimay三角网的方 法,出现了许多算法,主要可分为逐点插入算法、分割-合并算法和三角网生长算法三类。 但是,这三类算法都比较复杂,实现起来较为困难,在实际应用中很少直接使用。

发明内容
为了弥补现有的算法难以在现实直接应用的不足,本发明提供了一种新的方法, 可以用较为简单的方式来实现三角剖分。本发明解决其实现问题所采用的技术方案是将三角剖分过程分成三个不同的阶 段,每个阶段用较为简单的算法来实现。首先用随机算法来实现欧几里德最小支撑树;然后 在欧几里德最小支撑树中每次加入一条边,构成三角形网络,直到最后一条边加入为止;最 后,使用最大最小角准则,通过局部变换,得到所需要的最佳三角剖分。本发明的有益效果是,可以用较为简单的方法来实现三角剖分,可以方便的应用 在实际需求中。
具体实施例方式在本发明中,三角剖分过程被分成三个不同的阶段,每个阶段用较为简单的算法 来实现。首先用随机算法来实现欧几里德最小支撑树;然后在欧几里德最小支撑树中每次 加入一条边,构成三角形网络,直到最后一条边加入为止;最后,使用最大最小角准则,通过 局部变换,得到所需要的最佳三角剖分。在引入算法之前,提出了三个定义和两个约束定义1 设P = {P” P2,…,PJ是一个平面点集,则欧几里德最小支撑树(EMST) 是一棵连接P中所有点的树,并且其边长之和为最小,简称最小支撑树。
定义2 设图G = (V, E),其中V是顶点集,E是边集,若有边eik = (vi, vk),eij =(vi, vj)则称eik与eij为一对相关边。有向边vivk与vivj之间的夹角为相关边对 eik, eij的夹角。定义3 由EMST或当前图中相关边对组成的表称为相关边对表(简记为IEPL)。在向EMST中加入一边形成三角形网络时,必须满足如下约束条件约束1 三角形相互之间是不相交的,即两个三角形除端点外无交点,称此约束为 三角形相交约束。约束2 三角形相互之间是互不包含的,即任何一个三角形不完全包含其它三角 形,称此约束为三角形包含约束。整个三角剖分过程被划分成了三个不同的算法算法1Al.求出平面点集P = (P1, P2,…,PJ的最小生成树EMST(P)(参见算法2)。A2.根据EMST(P)求出初始相关边对表IEPL(P)。A3.根据相关边对的夹角,从小到大排序相关边对表IEPL(P)中的所有相关边对。A4.初始化三角形网格表 TML(Triangle Mesh List) [2] A5.当IEPL(P)中还存在一个边对没有处理时,则从中选择夹角最小的相关边 eik, eij对,并置mark标志为1,如果该相关边对构成的三角形Δ vivjvk,同时满足约束1 和约束2,那么做以下操作①把三角形Δ vivjvk加入到TML中;②把新边(vi,vk)加入到EMST(P)中;③把新边(vi,vk)引入的新的相关边对,根据其夹角插入到排序的IEPL(P)中。A6.按最大-最小内角准则,通过局部优化变换,得到Delaimay三角剖分(参见算 法3)。算法2 (求 EMST (P))Bi.设V是要输入的平面点集,E是边集,初始情况下E为空。开始时候估算任意 两个点的最大距离D,取Cl = C0nst*D/n (const是大于1的常量,使得任意两点间距离小于 Cl,n是V中点的数目),进行如下操作对于V中的一个点p,找到与ρ相距Cl的所有点,存入点集Q中对于Q中的每个点q,将边(p,q)加入E中,转步骤①,直至所有的点ρ都已经考 虑到。Β2.用D. R. Karger论文[3]中的随机算法计算G (V,Ε)中的最小支撑森林,找出 森林中的最大支撑树F,用T(V1,El)来表示。B3.设V2 = V-Vl,r = C2*logn(C2是大于1的常量,η是V中点的数目),El = El,进行如下操作对于V2中的一个点ρ,找到与ρ相距r所有点,存入点集R中对于R中的每个点q,将(p,q)加入El中,转步骤①,直至所有的点ρ都已经考虑 到。Β4.用[3]中的随机算法计算Gl (V,El)中的最小支撑森林F,如果F中只有一棵 树Tl,则输出Tl并结束;否则r = 2打,转B3中的步骤①。
算法3 (局部优化)Cl.从TML表形成三角形网格的边表EL。C2.对边表EL中的每一条非边界边,做步骤C3。C3.取出以此边为邻接条件的两个相邻三角形,构成一个四边形如果这个四边形 是凹的,则不做任何处理。如果这个四边形是凸的,则计算两个三角形的最小内角α , 交换对角线计算出两个新的三角形的最小内角α 2,如果α2> α 则以交换对角线所 得到的两个新三角形替换原来的两个三角形,并按新的三角形修改TML,交换边计数变量 interchaged-edge 力口 1 (初始值为 0)。C4.如果 interchaged-edge = 0,则结束,否则,转步骤 Cl。从上述过程可以发现本发明具有以下优点1、本发明将复杂的三角剖分过程划分成三个易于实现的算法,能够有效的解决三 角剖分过程难于在实际需求中应用的难题;2、算法2采用的是线性时间的随即算法,在易于实现的同时,也能够有效的提高 算法的效率。因此本发明就三角剖分难于在实际中应用的问题,提出一种新的三角剖分方法, 将三角剖分过程分成三个不同的阶段,分别用三个不同的算法实现,能够有效降低算法实 现的难度。
权利要求
1.一种三角剖分方法,其特征在于包含三个步骤a)用随机算法来实现欧几里德最小支撑树;b)在欧几里德最小支撑树中每次加入一条边,构成三角形网络,直到最后一条边加入 为止;c)使用最大最小角准则,通过局部变换,得到所需要的最佳三角剖分。
2.根据权利要求1所述的一种三角剖分方法,其特征在于,其中步骤a)中使用了线 性时间的随机算法来实现欧几里德最小支撑树。
全文摘要
一种三角剖分方法。将三角剖分过程分成三个不同的阶段,分别由三个相对简单的算法来实现。首先用随机算法来实现欧几里德最小支撑树;然后在欧几里德最小支撑树中每次加入一条边,构成三角形网络,直到最后一条边加入为止;最后,使用最大最小角准则,通过局部变换,得到所需要的最佳三角剖分。
文档编号G06F17/50GK102142043SQ20101010483
公开日2011年8月3日 申请日期2010年2月3日 优先权日2010年2月3日
发明者余楚才 申请人:上海华宇电子工程有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1