生成Delaunay三角网的合成算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

❖ 如图4所示,面积坐标(L1,L2,L3),其中,
❖ 这里的三角形面积是有向面积,按顶点顺 序,逆时针旋转为正,顺时针旋转为负.
❖ 若P在三角形中,必有其所有面积坐标大于零(见 图4(a)),即L1>0, L 2>0, L 3>0; 若P在三角形外, 则至少有一个面积坐标小于零.如图4( b)所示,P 在三角形P2P3边外侧,则 L1<0, L 2>0, L 3>0;若 P在三角形边上(这儿排除P与三角形顶点重合的 情况),那么必有值为0的面积坐标.如图4c所示, P在三角形P2P3边上,则有L1=0, L 2>0, L 3>0;
❖ 4. 3插点入网
❖ 该了模块分为两个步骤:首先,定位待插入 点,即确定点在哪个三角形中;然后,根据点 在三角形的位置,修改三角网.
❖ 4. 3. 1基于面积坐标的点定位算法
❖ 随着点数增加,三角形数目也成倍增加.当 三角形数目较大时,利用点在多边形中的判 断方法,扫描整个或局部三角网格,是相当 费时的.快速合成算法利用三角形面积坐标和 三角网拓扑关系来解决这一问题。
❖ 4.3.2点定位后的三角网修改
❖ 由于所有待插入点必在凸壳内,所以待插 入点必在三角形内或三角边上.跟据点与所处 三角形的关系,点插入三角网的情况及相应 的三角网修改方法分为如下3种情况(见图6) .
• 插入点在三角形内.如图6( a)所示,待插入点P在三角形 P1P2P3内.此时,将点P与此三角形的三个顶点相连,形 成3个三角形.
• 把分治算法与逐点插入法结合起来的具体做 法是,以分治算法为主体,当递归分割数据 集的过程进行到子集中的数据量小于一个预 定值——分割阈值时终止,然后用逐点插入 法在子集中生成子三角网。我们把这一新的 算法称为合成算法。它的流程图见图1。其中 v表示数据集:Nv是V的数据量;Nd是分割阈值 ;Nl, Nr分别表示两个子集的数据量;Tl,Tr分别 表示在子集中建立的两个子三角网。

• 需要注意的是,点集是任意离散的,出发点P1可能与多点共线 .如图3 ( a)所示,点P1一P5共线,而事实上点P2一P4不参加
构成初始三角网,因此,需要在建立初始三角网前对凸壳进行 修正。如果存在点P3, P4,...Pk(2< k<n),与P1P2共线,则必 须删去点P2, P3, ..., Pk-1,并由P1Pk代替P1P2成为初始边.同 样,如果存在点Pk,Pk+1...,Pn-1(2< k<n)与PnP1共线,则必 须删去点Pk+1...,Pn-1,并由PkP1代替PnP1,成为终止边(如 图3所示).经修正后,所有凸壳点按逆时针重新编号.
❖ 一种生成Delaunay三角网的合成算法 2000 武晓波,王世新,肖春生
❖ 生成Del aunay三角网的快速合成算法 吴宇 晓,张登荣 2004
• 经过20多年的研究,自动生成Delaunay三角网的算法 已趋于成熟。它们基本上可分为分治算法逐点插入法、 三角网生长法等3类。其中前两类较第3类在应用户上更 加广泛。但即使这两类算法也分别存在着时间和空间效 率上的缺陷,使它们的应用受到了一定的限制。武晓 波,2000提出了一个融以上两类算法优点于一体,兼顾 空间与时间性能的合成算法。经测试,它的运算效率大 大高于逐点插入法,在大多数情况下,也高于分治算法, 在分割阈值约为总数据量的十分之一时,效率最高。
• 合成算法结合了传统的递归分割法和逐点插入法 的优点,兼顾空间和时间性能然而,该算法不可 避免地继承了两种传统算法的不足,在执行效率 上受到限制,为了解决执行效率问题,[吴宇晓, 张登荣 2004]提出了快速合成算法,对合成算进 行了改进和优化。该算法基于面积坐标的点定位 算法和简化的高效空外接圆判断算法,从而大大 提高算法的整体执行效率;同时充分考虑平面点 集的任意性,适用于对任意平面点集构建 Delaunay三角网。
Hale Waihona Puke Baidu 1引言

分治算法和逐点插入法由于易于实现,是当前应用较广
的两类算法。这两类算法所采用的实现方法决定了它们存在
着明显的局限性,分治算法需要大量的内存,逐点插入法运 行速度极慢。当数据量较大或计算机性能较差时,它们的使 用都将遇到困难。
• 武晓波,2000提出了一个成功地解决了上述问题的合成算法。 该算法将逐点插入法嵌入到分治算法中,使它们优势互补, 弥补了各自的缺陷。经过一个有2533个点数据测试,表明合 成算法的运算效率大大高于逐点插入法,在大多数情况下也 高于分治算法
• 待插入点在非凸壳边上.由于所在边不是凸壳边,此边必 是两个三角形的公共边.如图6( b)所示,待插入点P在边 P2P3上,P2P3是三角形P1P2P3和P2P3P4的公共边.此 时,点P与P2P3两个三角形的对应点P1和P4相连,形成4 个三角形.
❖ 4算法的基本模块
❖ 为了便于分割,在执行各模块之前,首先 要对初始点集按升序以x坐标为主,y坐标为 辅进行排列,确保子三角网不相互叠置.
❖ 4. 1格雷厄姆法计算凸壳
❖ 4. 2初始三角网的建立与修正 ❖ 以凸壳上y值最小的点(设为点P1)为出发点,
按序与凸壳上其余的点相连(如图3( b)所示).
• 2己有算法介绍2. 1分治算法2. 2逐点插入法2. 3三角网生长法
• 3合成算法
• 由以上介绍不难看出,目前采用较多的前两类算法各具优势 又有局限,同时,它们又具有明显的互补性。分治算法时间性 能好,空间性能差;逐点插入法空间性能好,时间性能差。我 们评价一个算法的优劣是看它对时间和空间的消耗,即时空性 能的综合表现。因此,就产生了一个非常自然的想法,为何不 把它们结合起来,取长补短,从而提高算法的性能呢?
❖ 综上分析可知,正是小于0的面积坐标指明了 目标三角形的方向.在建立了三角形拓扑关系 的三角网中,利用面积坐标的这一特性,可 很快查到包含点所在的三角形或所处的三角 边.
❖ 基于面积坐标的定位过程如图5所示.设三角形P1P2P3 为搜索的起点,计算点P的面积坐标可知L1< 0,取L1 的对应边P2P3的邻接三角形P3P2P4作为下一个判断 的三角形.依次进行判断,直至三角形P7P6P8.此时若 L1>0, L 2>0, L 3>0都大于0,则点P在三角形P7P6P8 内;若Li(i=1,2, 3)=0,则点P在Li所对应的边上.
相关文档
最新文档