生成Delaunay三角网的合成算法-Read

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

• 把分治算法与逐点插入法结合起来的具体 做法是,以分治算法为主体,当递归分割 数据集的过程进行到子集中的数据量小于 一个预定值——分割阈值时终止,然后用逐 点插入法在子集中生成子三角网。我们把 这一新的算法称为合成算法。它的流程图 见图1。其中v表示数据集:Nv是V的数据量 ;Nd是分割阈值;Nl, Nr分别表示两个子集的 数据量;Tl,Tr分别表示在子集中建立的两个 子三角网。
• 合成算法结合了传统的递归分割法和逐点插入 法的优点,兼顾空间和时间性能然而,该算法 不可避免地继承了两种传统算法的不足,在执 行效率上受到限制,为了解决执行效率问题, [吴宇晓,张登荣 2004]提出了快速合成算法, 对合成算进行了改进和优化。该算法基于面积 坐标的点定位算法和简化的高效空外接圆判断 算法,从而大大提高算法的整体执行效率;同 时充分考虑平面点集的任意性,适用于对任意 平面点集构建Delaunay三角网。
• 4. 3插点入网 • 该了模块分为两个步骤:首先,定位待插 入点,即确定点在哪个三角形中;然后,根 据点在三角形的位置,修改三角网.
• 4. 3. 1基于面积坐标的点定位算法 • 随着点数增加,三角形数目也成倍增加. 当三角形数目较大时,利用点在多边形中 的判断方法,扫描整个或局部三角网格, 是相当费时的.快速合成算法利用三角形面 积坐标和三角网拓扑关系来解决这一问题。
• 4.3.2点定位后的三角网修改 • 由于所有待插入点必在凸壳内,所以待 插入点必在三角形内或三角边上.跟据点与 所处三角形的关系,点插入三角网的情况 及相应的三角网修改方法分为如下3种情况 (见图6) .
• 插入点在三角形内.如图6( a)所示,待插入点P在三 角形P1P2P3内.此时,将点P与此三角形的三个顶点 相连,形成3个三角形. • 待插入点在非凸壳边上.由于所在边不是凸壳边, 此边必是两个三角形的公共边.如图6( b)所示,待插 入点P在边P2P3上,P2P3是三角形P1P2P3和P2P3P4 的公共边.此时,点P与P2P3两个三角形的对应点P1 和P4相连,形成4个三角形. • 待插入点在凸壳边上. 凸壳边有且仅有一个相邻三 角形,因此图6(c)中,只需将点P与P2P3惟一的相邻 三角形P1P2P3的对应点P1相连,形成两个三角形.
• 2己有算法介绍2. 1分治算法2. 2逐点插入法2. 3 三角网生长法 • 3合成算法 • 由以上介绍不难看出,目前采用较多的前两 类算法各具优势又有局限,同时,它们又具有 明显的互补性。分治算法时间性能好,空间性 能差;逐点插入法空间性能好,时间性能差。 我们评价一个算法的优劣是看它对时间和空间 的消耗,即时空性能的综合表现。因此,就产 生了一个非常自然的想法,为何不把它们结合 起来,取长补短,从而提高算法的性能呢?
• 1引言 • 分治算法和逐点插入法由于易于实现,是当前 应用较广的两类算法。这两类算法所采用的实现方 法决定了它们存在着明显的局限性,分治算法需要 大量的内存,逐点插入法运行速度极慢。当数据量 较大或计算机性能较差时,它们的使用都将遇到困 难。 • 武晓波,2000提出了一个成功地解决了上述问题的合 成算法。该算法将逐点插入法嵌入到分治算法中, 使它们优势互补,弥补了各自的缺陷。经过一个有 2533个点数据测试,表明合成算法的运算效率大大 高于逐点插入法,在大多数情况下也高于分治算法
• 综上分析可知,正是小于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所对应的边上.
• 如图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算法的基本模块 • 为了便于分割,在执行各模块之前,首 先要对初始点集按升序以x坐标为主,y坐 标为辅进行排列,确保子三角网不相互叠 置. • 4. 1格雷厄姆法计算凸壳
• 4. 2初始三角网的建立与修正 • 以凸壳上y值最小的点(设为点P1)为出发 点,按序与凸壳上其余的点相连(如图3( b) 所示). •
• 需要注意的是,点集是任意离散的,出发点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所示).经修正后,所有凸壳点按逆 时针重新编号.
生成Del aunay三角网的合成算法
Βιβλιοθήκη Baidu
• 一种生成Delaunay三角网的合成算法 2000 武晓波,王世新,肖春生 • 生成Del aunay三角网的快速合成算法 吴宇 晓,张登荣 2004
• 经过20多年的研究,自动生成Delaunay三角网 的算法已趋于成熟。它们基本上可分为分治算 法逐点插入法、三角网生长法等3类。其中前 两类较第3类在应用户上更加广泛。但即使这 两类算法也分别存在着时间和空间效率上的缺 陷,使它们的应用受到了一定的限制。武晓 波,2000提出了一个融以上两类算法优点于一 体,兼顾空间与时间性能的合成算法。经测试, 它的运算效率大大高于逐点插入法,在大多数 情况下,也高于分治算法,在分割阈值约为总 数据量的十分之一时,效率最高。
相关文档
最新文档