DELAUNAY三角网的算法一、引言TIN(TriangulatedIrregularNetwork,不规则三角网)是由Peuker和他的同事于1978年设计的一个系统,它是根据区域的有限个点集将区域划分为相等的三角面网络,数字高程由连续的三角面组成,三角面的形状和大小取决于不规则分布的测点的密度和位置,能够避免地形平坦时的数据冗余,又能按地形特征点表示数字高程特征。TIN常用来拟合连续分布现象的覆盖表面。二、Delaunay(德洛内)三角网1、定义:一系列相连但不重叠的三角形的集合,而且这些三角形的外接圆不包含这个面域的其他人任何点。2、性质:(1)、每个Delaunay三角形的外接圆不包含面内其他任何点,即Delaunay三角网的空外接圆性质。这是创建Delaunay三角网的一项判别标准。(2)、在由点集V中所能形成的三角网中,Delaunay三角网中三角形的最小角度是最大的。3、优点:结构良好,数据结构简单,数据冗余度小,存储效率高,可适应各种分布密度的数据。p1p2p3p4p5p6三、Voronoi图(泰森多边形或Dirichlet图)由一组由连接两邻点直线的垂直平分线组成的连续多边形组成。N个在平面上有区别的点,按照最邻近原则划分平面;每个点与它的最近邻区域相关联。Delaunay三角形是由与相邻Voronoi多边形共享一条边的相关点连接而成的三角形。Delaunay三角形的外接圆圆心是与三角形相关的Voronoi多边形的一个顶点。Voronoi三角形是Delaunay图的偶图。四、算法1、分割归并法2、逐点插入算法3、三角网增长法逐点插入法:1、遍历所有散点,求出点集的包容盒,得到作为点集凸壳的初始三角形并放入三角形链表。2、将点集中的散点依次插入,在三角形链表中找出其外接圆包含插入点的三角形(称为该点的影响三角形),删除影响三角形的公共边,将插入点同影响三角形的全部顶点连接起来,从而完成一个点在Delaunay三角形链表中的插入。3、根据优化准则对局部新形成的三角形进行优化(如互换对角线等)。将形成的三角形放入Delaunay三角形链表。4、循环执行上述第2步,直到所有散点插入完毕。上述基于散点的构网算法理论严密、唯一性好,网格满足空圆特性,较为理想。由其逐点插入的构网过程可知,在完成构网后,增加新点时,无需对所有的点进行重新构网,只需对新点的影响三角形范围进行局部联网,且局部联网的方法简单易行。同样,点的删除、移动也可快速动态地进行。但在实际应用当中,这种构网算法不易引入地面的地性线和特征线,当点集较大时构网速度也较慢,如果点集范围是非凸区域或者存在内环,则会产生非法三角形。为了克服基于散点构网算法的上述缺点,特别是为了提高算法效率,可以对网格中三角形的空圆特性稍加放松,亦即采用基于边的构网方法,其算法简述如下:1、根据已有的地性线和特征线,形成控制边链表。2、以控制边链表中一线段为基边,从点集中找出同该基边两端点距离和最小的点,以该点为顶点,以该基边为边,向外扩展一个三角形(仅满足空椭圆特性)并放入三角形链表。3、按照上述第2步,对控制边链表所有的线段进行循环,分别向外扩展。4、依次将新形成的三角形的边作为基边,形成新的控制边链表,按照上述第2步,对控制边链表所有的线段进行循环,再次向外扩展,直到所有三角形不能再向外扩展为止。