离散点集实时Delaunay三角网剖分算法的研究

合集下载

Delaunay三角剖分及matlab实例

Delaunay三角剖分及matlab实例

Delaunay三⾓剖分及matlab实例鉴于Delaunay三⾓剖分在点云拟合⽅⾯有不错的应⽤,现对该算法的原理进⾏简单的汇总~----------------------------原理部分------------------------1、三⾓剖分与Delaunay剖分的定义如何把⼀个离散⼏何剖分成不均匀的三⾓形⽹格,这就是离散点的三⾓剖分问题,散点集的三⾓剖分,对数值分析以及图形学来说,都是极为重要的⼀项处理技术。

该问题图⽰如下:1.1 三⾓剖分定义【定义】三⾓剖分:假设V是⼆维实数域上的有限点集,边e是由点集中的点作为端点构成的封闭线段,E为e的集合。

那么该点集V的⼀个三⾓剖分T=(V,E)是⼀个平⾯图G,该平⾯图满⾜条件:1、除了端点,平⾯图中的边不包含点集中的任何点。

2、没有相交边。

//边和边没有交叉点3、平⾯图中所有的⾯都是三⾓⾯,且所有三⾓⾯的合集是散点集V的凸包。

//:⽤不严谨的话来讲,给定⼆维平⾯上的点集,凸包就是将最外层的点连接起来构成的凸多边型,它能包含点集中所有的点。

1.2 Delaunay三⾓剖分的定义在实际中运⽤的最多的三⾓剖分是Delaunay三⾓剖分,它是⼀种特殊的三⾓剖分。

先从Delaunay边说起:【定义】Delaunay边:假设E中的⼀条边e(两个端点为a,b),e若满⾜下列条件,则称之为Delaunay边:存在⼀个圆经过a,b亮点,圆内(注意是园内,圆上最多三点共圆)不含点集V中任何其他的点,这⼀特性⼜称空圆特性。

【定义】Delaunay三⾓剖分:如果点集V的⼀个三⾓剖分T只包含Delaunay边,那么该三⾓剖分称为Delaunay三⾓剖分。

1.3 Delaunay三⾓剖分的准则要满⾜Delaunay三⾓剖分的定义,必须符合两个重要的准则:1、空圆特性:Delaunay三⾓⽹是唯⼀的(任意四点不能共圆),在Delaunay三⾓形⽹中任⼀三⾓形的外接圆范围内不会有其它点存在。

Delaunay三角剖分

Delaunay三角剖分

Delaunay三角剖分来源:相关文章:OpenCV三角剖分的遍历和纹理映射:Delaunay三角剖分是1934年发明的将空间点连接为三角形,使得所有三角形中最小角最大的一个技术。

如果你熟悉计算机图形学,你便会知道Delaunay三角剖分是变现三维形状的基础。

如果我们在三维空间渲染一个,我们可以通过这个物体的投影来建立二维视觉图,并用二维Delaunay三角剖分来分析识别该物体,或者将它与实物相比较。

Delaunay剖分是连接计算机视觉与计算机图形学的桥梁。

然而使用OpenCV实现三角剖分的不足之处就是OpenCV 只实现了二维的Delaunay剖分。

如果我们能够对三维点进行三角剖分,也就是说构成立体视觉,那么我们可以在三维的计算机图形和计算机视觉进行无缝的转换。

然而二维三角剖分通常用于计算机视觉中标记空间目标的特征或运动场景跟踪,目标识别,或两个不同的摄像机的场景匹配(如图从立体图像中获得深度信息)。

下面内容摘自:1 三角剖分与Delaunay剖分的定义如何把一个离散几何剖分成不均匀的三角形网格,这就是离散点的三角剖分问题,散点集的三角剖分,对数值分析以及图形学来说,都是极为重要的一项处理技术。

该问题图示如下:1.1 三角剖分定义【定义】三角剖分:假设V是二维实数域上的有限点集,边e是由点集中的点作为端点构成的封闭线段,E为e的集合。

那么该点集V的一个三角剖分T=(V,E)是一个平面图G,该平面图满足条件:1、除了端点,平面图中的边不包含点集中的任何点。

2、没有相交边。

(边和边没有交叉点)3、平面图中所有的面都是三角面,且所有三角面的合集是散点集V的凸包。

1.2 Delaunay三角剖分的定义在实际中运用的最多的三角剖分是Delaunay三角剖分,它是一种特殊的三角剖分。

先从Delaunay边说起:【定义】Delaunay边:假设E中的一条边e(两个端点为a,b),e若满足下列条件,则称之为Delaunay边:存在一个圆经过a,b亮点,圆内(注意是圆内,圆上最多三点共圆)不含点集V中任何其他的点,这一特性又称空圆特性。

Delaunay三角剖分

Delaunay三角剖分
仁除了端点.平面图屮的边不包含点集屮的任何点。
2.没有相交边。(边和边没有交叉点)
3.平面图中所有的面都是三角面.且所有三介面的合集堆散点集V的凸包。
1.2 Delaunay
在实际中运用的鼓多的三角別分是Delaunay三角剖分.它绘一种待殊的三角剖分。先从Delaunay边说起:
【定义】Delaunay边:假设E中的一条边e(两个端点为a,b)> e若满足下列条件.则称Z为Delaunay边:存在一个閲
丄・CvPoint2D32f fp;//This is our point holder//;.^我心点的f•} fIRS)
2・for(i = 0; i < as_many_points_as_you_want; i++ ) {
3・//However you want to set points〃如果我们的点集不足32位的.在这里我们将其转为CvPoint2D32于・如下两种方法.
第//
5.fp=your_32f_point_list[i];
6.cvSubdiv0elaunay2DInsert( subdiv, fp )j
7・}
转换为
1)
2)
肖可以通过输入点(散点集)得到
1.cvCalcSubdivVoronoi2D( subdiv);//Fill out Voronoi data in subdiv〃在subdiv充Vornoi的数州
1.
以下是Delaunay剖分所具备的优异特性:
1x最接近:以掖接近的三点形成三角形.且各线段《三角行的边〉皆不相交。
2.唯一性:不论从区域何处开始构建.最终都将得到一致的结果。
3.眾优性:任惫两个相邻三角形构成的凸四边形的对角线如何可以互换的话.那么两个三角形六个内角屮最小角度不 会变化,

delaunay三角网生长准则及算法

delaunay三角网生长准则及算法

Delaunay 三角网是Voronoi(或称thiessen多边形,V 图)图的伴生图形◆Delaunay 三角网的定义:由一系列相连的但不重叠的三角形的集合, 而且这些三角形的外接圆不包含这个面域的其他任何点。

◆Voronoi图的定义:Voronoi图把平面分成N 个区,每一个区包括一个点,该点所在的区域是距离该点最近的点的集合。

◆Delaunay三角网的特性:◆不存在四点共圆;◆每个三角形对应于一个Voronoi图顶点;◆每个三角形边对应于一个Voronoi图边;◆每个结点对应于一个Voronoi图区域;◆Delaunay图的边界是一个凸壳;◆三角网中三角形的最小角最大。

空外接圆准则最大最小角准则最短距离和准则在TIN中,过每个三角形的外接圆均不包含点集的其余任何点在TIN中的两相邻三角形形成的凸四边形中,这两三角形中的最小内角一定大于交换凸四边形对角线后所形成的两三角形的最小内角一点到基边的两端的距离和为最小Delaunay三角剖分的重要的准则张角最大准则面积比准则对角线准则一点到基边的张角为最大三角形内切圆面积与三角形面积或三角形面积与周长平方之比最小两三角形组成的凸四边形的两条对角线之比。

这一准则的比值限定值,须给定,即当计算值超过限定值才进行优化Delaunay三角剖分的重要的准则不规则三角网(TIN)的建立●三角网生长算法就是从一个“源”开始,逐步形成覆盖整个数据区域的三角网。

●从生长过程角度,三角网生长算法分为收缩生长算法和扩张生长算法两类。

方法说明方法实例收缩生长算法先形成整个数据域的数据边界(凸壳),并以此作为源头,逐步缩小以形成整个三角网分割合并算法逐点插入算法扩张生长算法从一个三角形开始向外层层扩展,形成覆盖整个区域的三角网递归生长算法逐点插入算法分割合并算法12121212递归生长算法333TIN 建立过程中的几个问题:◆邵春丽.DELAUNAY 三角网的算法详述及其应用发展前景◆鲍蕊娜,等:基于凸壳技术的Delaunay 三角网生成算法研究◆于杰等:Delaunay 三角网构建方法比较研究周围点的提取 点在三角形中的查找 空外接圆判断准则 线段求交问题。

基于Delaunay三角网格剖分算法在三维造型中的研究

基于Delaunay三角网格剖分算法在三维造型中的研究

基于Delaunay三角网格剖分算法在三维造型中的研究作者:王牌来源:《科学与财富》2014年第06期摘要:在对三维图像进行有限元数值模拟解析时,为了对连续的计算区域进行数值计算,达到模拟仿真的效果,必须先对三维图像进行网格剖分。

Delaunay三角网格剖分算法是生成网格的一种有效方法。

本文介绍了Delaunay三角网格剖分算法,以及在约束条件下的网格细分,最后给出了该算法在三维实体造型中的应用。

关键词:三角剖分;网格生成;网格细分Abstract: In the simulation analysis of the 3D finite element numerical, in order to carry out the numerical calculation for the calculation of continuous area, achieve the simulation results, we must first on the 3D mesh. Delaunay triangulation algorithm is an effective method to generate mesh. This paper introduces the Delaunay triangulation algorithm, and in the condition of mesh subdivision, finally the application of the algorithm in 3D solid modeling are given in this paper.Keywords: triangulation,mesh generation,mesh subdivision1、引言网格生成是有限元模拟计算的先决条件,有限元计算的效率和精确度在很大程度上受生成的网格质量的影响。

Python实现DelaunayTriangulation

Python实现DelaunayTriangulation

Python实现DelaunayTriangulationDelaunay三角剖分是一种广泛用于计算机图形学、地理信息系统和计算几何等领域的技术。

它将一组离散点集划分成一组互不重叠的三角形,同时满足一定的性质。

在Python中实现Delaunay三角剖分可以使用几何库scipy和matplotlib。

Scipy库中的Delaunay函数可以实现Delaunay三角剖分,而matplotlib库可以用于可视化结果。

下面是一个简单的例子,展示了如何使用Python实现Delaunay三角剖分:```pythonimport numpy as npimport matplotlib.pyplot as pltfrom scipy.spatial import Delaunay#生成随机点points = np.random.rand(30, 2)# 执行Delaunay三角剖分tri = Delaunay(points)# 绘制Delaunay三角剖分结果plt.triplot(points[:,0], points[:,1], tri.simplices)plt.plot(points[:,0], points[:,1], 'o')plt.show```在这个例子中,我们首先生成了30个随机点,然后使用Delaunay函数执行Delaunay三角剖分,并传入这些点作为参数。

最后,使用matplotlib库的triplot函数绘制Delaunay三角剖分结果,然后再绘制原始点。

这段代码可以生成一个简单的Delaunay三角剖分示意图,并且可以通过调整点的数量或位置来实现不同的效果。

实际应用中,Delaunay三角剖分常用于三维地理信息系统中的高程插值、人脸识别中的特征点定位、计算几何中的最近邻等领域。

此外,还可以使用其他几何库,如CGAL和OpenCV等库,来实现更复杂的Delaunay三角剖分算法。

delaunay 三角剖分 步骤

delaunay 三角剖分 步骤

delaunay 三角剖分步骤1. Delaunay三角剖分是用于将点集分割成不规则三角形的方法。

The Delaunay triangulation is a method for dividing a set of points into irregular triangles.2.首先选择一个点作为起始点。

First, select a point as the starting point.3.然后选择另外两个点与起始点构成一个三角形。

Then select two other points to form a triangle with the starting point.4.接着选择一个未被包含在任何三角形内的点。

Then select a point that is not included in any triangle.5.在所有的三角形中寻找能将这个新点包含进去的三角形。

Find a triangle among all the triangles that can include this new point.6.如果找到了这样的三角形,将这个三角形和新点围成的区域删除。

If such a triangle is found, remove the area enclosed by this triangle and the new point.7.在新的边缘上寻找新的三角形。

Find new triangles on the new edges.8.重复以上步骤,直到所有的点都被包含在三角形内。

Repeat the above steps until all points are included in triangles.9. Delaunay三角剖分具有无重叠、最小化夹角和最大化最小角的性质。

Delaunay triangulation has the properties of non-overlapping, minimizing angles, and maximizing minimum angles.10.可以使用Delaunay三角剖分来进行网格生成和空间分析。

Delaunay三角网剖分的约束边嵌入改进算法_陈学工

Delaunay三角网剖分的约束边嵌入改进算法_陈学工

2009,45(24)B图1平面直线图1引言地学领域中的大量离散数据不是独立的,相互之间存在着一定的约束关系,比如地表的山脊线、山谷线、断裂线等。

在构建Delaunay 三角网时,如果三角网中没有带约束数据,则生成的数字地面模型是不能正确地表达地表的复杂关系,也不能满足实际应用的需要,于是在无约束数据的三角网中嵌入约束线段就成为一个关键的问题,该文重点研究约束边嵌入三角网的问题。

文献[1]中提到的“轨迹生成”法,易于实现,但当交换边所在四边形为凹多边形时,“轨迹生成”法失效。

文献[2]提出“多对角线交换算法”,经研究[3]表明该结论是不正确的,文献[4-5]分别提出一种插点算法,此类算法需要大量插入点并修改三角剖分的结构。

根据约束边影响域所在多边形顶点的凸凹性,文献[3]提出一种基于凸凹判定的对角线交换算法,当约束边与三角形的边相切时交换对角线会出现错误,且执行效率较低,针对文献[3]出现的问题,在不改变原算法思想的前提下提出“分裂约束边”的思想完善原算法的健壮性,并引入快速点定位算法[6]以提高算法的执行效率。

2基本概念定义1平面直线图(Planar Straight Line Graph ,PSLG),它由顶点集p =(p 1,p 2,…,p n )以及其中点组成的直线段(约束边)的集合L ={p i p j |p i ∈p ,p j ∈p ,p i ,p j 为直线段的两端点}组成,并且L 中任意两条直线段之间除端点外没有其他交点。

PSLG 扩展了传统的以内、外环定义平面图形的方式,可表示任意复杂的正则及非正则图形。

三角网则可以看作一个平面直线图。

定义2与待嵌入边E c 相交的三角形组成的多边形,称为E c 的影响域。

图1中多边形EFGHSIJ 是约束边E c 的影响域。

E c左边影响域记为QL=(S ,H ,G ,F ,E ),右边影响域记为QR=(S ,I ,J ,E)。

Delaunay 三角网剖分的约束边嵌入改进算法陈学工1,李源1,曹建1,肖克炎2CHEN Xue-gong 1,LI Yuan 1,CAO Jian 1,XIAO Ke-yan 21.中南大学信息科学与工程学院,长沙4100832.中国地质科学院矿产资源研究所,北京1000371.School of Information Science and Engineering ,Central South University ,Changsha 410083,China 2.Institute of Resources ,Chinese Academy of Geological Science ,Beijing 100037,China E-mail :lyazjx@CHEN Xue-gong ,LI Yuan ,CAO Jian ,et al.Improved algorithm of inserting constrained edge into Delaunay triangulation.Computer Engineering and Applications ,2009,45(24):235-237.Abstract :This paper focuses on researching the problem of inserting constrained edge into D-Triangulation.It is a very effectivemethod of changing D-Triangulation into CD-Triangulation that constrained edge is inserted into D-Triangulation ,and only CD-Triangulation can present real terrain and relief.According to the shortcoming of the diagonal line exchange algorithm which is based on convexo-concave ,this paper proposes an idea of “split -restraint ”to improve the robustness of the algorithm and intro -duces the rapid point positioning algorithm to enhance the efficiency of the algorithm.Key words :constrained edge ;Delaunay triangulation ;diagonal ;convexo-concave 摘要:重点研究约束边强行嵌入D-三角网的问题。

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

第24卷,第2期 2 0 0 3年4月 中 国 铁 道 科 学 CHINA RAII WAY SCIENCE V01.24 No.2 

April,2003 

文章编号:1001—4632(2003)02—0044—04 离散点集实时Delaunay三角网剖分算法的研究 蒋 红 斐 (中南大学铁道校区土木建筑学院,湖南长沙410075) 摘要:为了解决分治算法、插入算法和生长算法都要求在构网之前给出所有点数据这个问题,实时三角 网剖分算法先利用部分离散点生成一个外轮廓为凸包的初始三角网。然后将点加入到既有三角网中,如点落在 既有三角网的某一三角形中,将该点与三角形的顶点相连构建新的三角网;如点落在既有三角网外,找出该点 向既有三角网外轮廓围成的凸包发出的两条支撑线,这两条支撑线与既有凸包围成了一个多边形,再将这个多 边形剖分成三角网即可。最后利用局部优化算法对所生成的三角网进行优化,使之成为Delaunay三角网。该算 法构网时无需预先给定所有数据点,可用于实时生成三角网;此外,通过对凸包进行分区管理,在搜寻凸包支 撑线时,能预先确定出支撑点的范围,减少了搜索工作量,提高了三角网的生成速度。 

关键词:工程测量;三角网构网;三角剖分算法;局部优化 中图分类号:U212.2 文献标识码:A 

根据构建三角网实现过程的不同,可将生成三 角网的算法分为分治算法、插入算法及生长算法。 这些算法要求在构网之前给出所有数据点,在实际 应用中,特别是那些实时运行的应用中,不能满足 这种条件,这在一定程度上影响了算法的应用,因 此,寻找一种能实时构建三角网的算法,对开发路 线实时动态三维可视化系统是十分必要的。 

1实时三角网剖分算法 1.1算法基本原理 算法的基本原理是先利用部分离散点生成一个 外轮廓为凸包的初始三角网,在此基础上进行三角 网的构建,最后利用局部优化算法对所生成的三角 网进行优化,使之成为Delaunay三角网。 当点P位于既有三角网中时,其构网原理简单, 不再赘述。当点P不在既有三角网中时,按图1所示 方法进行构网,即找出从P点向既有三角网外轮廓 围成的凸包发出的两条支撑线,这两条支撑线与既 有凸包围成了一个多边形,再将这个多边形剖分成 三角网即可,在如图1所示的情形中,P发出的两条 支撑线与既有三角网的边界围成了一个多边形,2 个支撑点分别为 , ,只要从P发出2条对角 

收稿日期:2002—04—11 作者简介:蒋红斐(1967一),男,广西全州人,副教授,博士。 基金项目:铁道部科技研究开发计划项目(97G23一F) 

线就能完成对多边形的剖分,且剖分后三角网的外 轮廓仍为一凸包。 

Jp 

图1 P点位于既有三角网外 因此,算法的关键是寻找凸包与凸包外一点的 支撑线,虽然这类算法有多种[4],但由于设计算法 

的出发点不同,因此并不一定适合外插算法的要 求,本文利用文献[5]的思想,并对其所提算法 进行了拓展,提出了一种适合外插算法需求的查找 支撑线算法。 1.2凸包与凸包外一点支撑线的查找 定义1:设S={ 。, 2,…, }是平面上 个点的集合,S的一个凸包是平面上包含S的最小凸 域的边界。即存在一个凸多边形,它的顶点均为S中 第2期 离散点集实时Delaunay三角网剖分算法的研究 45 的点,且S中所有其它点都在该多边形内部,称该多 边形为S的凸包。 本文约定按逆时针方向记录凸域的边界顶点, 设P,Q,R为凸包上的三个相邻顶点,记 l z(P) y(P) 1 l vPQR=l z(Q)Y(Q)1 l I z(R) Y(R) 1 I 则P,Q,R是左转时 PlQR≥0,否则 PlQ尺<0。 定义2:设S为一平面点集,CH(S)表示S的凸 包。 定义3:设S={P。,P2,…,P }是凸包上 个 顶点的集合 z,=max(x(p1),z(P2),…,z(P )); =min(x(p1),x(p2),…,z(P )); Y =max(y(p1),Y(P2),…,Y(P )); Yb=min(y(p1),Y(P2),…,Y(P )); 以(z,,Yb),(z,,Y ),( ,Y ),( ,Yb)为顶点 的矩形称为点集S的矩形包围盒,简称包围盒,记为 BOX(S),该点集的凸包与包围盒的交点记为P,, P£,Pt,Pb o 定义4:凸包P的一条支撑线是通过P的一个顶 点的一条直线,且使得P的内部完全在该直线的一 侧,类似于凸曲线的切线。 在寻找支撑线时,为计算方便,将凸包包围盒 的四条边界向两端延长,它们与凸包边界将凸包所 在平面划分为13个区域,如图2所示,凸包外一 点P必定位于标号为I~Ⅻ的12个区域之一,通 过计算P点所在的区域,就可判断出支撑点位于哪 段凸包的边界上,以及既有边界与新凸包边界 CH(S)的关系,从而可提高支撑线的查找速度。 VII Wl I ~ Ⅵ Ⅱ V Ⅳ Ⅲ 图2对凸包进行分区管理 仅以P点位于工区为例,显而易见,此时支撑 点位于P ,PⅢ,…,P 及P ,P川,…,P,上,且P州, Pr+2,…,P¨必不是CH(S)的顶点。 因此在寻找从凸包包围盒外一点发出的两条支 撑线时,可按上述方法首先确定出支撑点在凸包上 的哪一段边界上,然后再在该段边界上寻找支撑 点,下面以P点位于工区为例说明搜寻支撑点算 法: 由上面分析可知,此时左支撑点位于P ,P州, Pz上,如果点P 满足vpp PⅢ≥0,则 PⅢ <180。,P ,PⅢ,…,P 都是CH(S)的顶点,这时P 就是左支撑点,如果vpp PⅢ≤0,取P 与P 之间 下标居中点P ,如vpp 一。P ≥0,取P 与P 的中 点,否则取P 与P 的中点,重复以上过程,直到 vpp 一1 P <0且vpp P +1≥0为止。这时P 就 是左支撑点。用同样的方法可以找到右支撑点。由于 采用了折半搜索法,因此运算复杂度至多为0 (1og ), 为被搜索边界的顶点数。 1.3初始三角网的生成 取出前 ( >2)个点,其中前 一1个点共线, 将第 个点与前 一1个点直接相连构成初始三角 网;这 个点顺序相连构成初始凸包。 

2约束边嵌入三角网 2.1基本概念 由于在三角网中引入了约束边,因此生成的三 角网不能保证是普通的D一三角网,下面给出约束 D一三角网的定义。 定义5:设T是域D(P,B)的一个三角剖分, 其中P={Po,P。,P:,…,P 一。}是域中互不相重的 N个点,B={b0,b。,b2,…,b¨}是分布在域中的 H条约束边,当且仅当其满足以下条件: ①T中的每一个三角形除其三个顶点外,不含 任何其它点。 ②T中的任意两个三角形互不交叠,至多有两 个公共顶点或一条公共边。 ③域D内的任意一点都包含在T的边集中。 ④所有的约束边都包含在T的边集中。 其中第④是为满足在三角网中引入地性线或构 网边界而增加的约束条件,相对于一般的Delaumy 三角网而言,T称为基于约束的Delaunay三角网。 定义6:给定区域D(P,B),P ,Pj是点集中的 中国铁道科学 第24卷 任意两点,如果P , f不与约束边相交,则称P , 是理想的相互见点。 定义7:如果一个三角形的外接圆中不存在同 时满足从三角形三个顶点都理想可见的结点,则称 该三角形为约束Delaunay三角形,该准则称为约束 圆准则。 在图3所示的情况下,AABC的外接圆中包 含点D,A,C为约束边上的两个顶点,此时D, B两点是互不可见的,因此AABC的外接圆中不 存在同时满足从三角形三个顶点都理想可见的结 点,故AABC是约束Delaunay三角形。 图3约束圆 定义8:T是基于约束的Delaunay三角形,当 且仅当T中的每一个三角形都满足约束圆准则。 2.2约束边嵌入算法 算法的原理是先将约束边上的点与其它点一起 进行标准Delaunay三角网的构建;然后在三角网中 删除与约束边相交的三角形,这些与约束边相交的 三角形的外轮廓是一个多边形,要嵌入的约束边将 这个多边形分成了两个新的多边形,将这两个多边 形进行剖分,就达到了将约束边嵌入三角网的目 的。 对多边形的剖分属于限定的三角剖分,采用步 进三角剖分,即先求出多边形的凹凸顶点,然后逐 次割去一个权值最大的且其中不包含其它顶点的三 角形构造三角形网格,修改多边形顶点链表,并重 新计算受影响的顶点的凹凸性,重复这个过程,直 到边界顶点链表为空。 2.3约束三角网的优化 由上述约束边嵌入算法可知,因约束边的嵌入 使原三角网中的三角形形状发生了改变,从而使新 生成的三角网中的三角形可能不再满足约束圆准 则。为了保证约束边嵌入三角网后新生成的三角网 仍然是D一三角网,可通过调整那些不满足约束圆 准则的三角形的形状使之满足约束圆准则,来达到 构建D一三角网的目的,称这一过程为约束局部优 化过程。 约束局部优化过程就是先运用约束圆准则对由 两个有公共边的三角形组成的四边形进行判断,如 果其中某个三角形的外接圆不满足约束圆准则,则 交换四边形的对角线。 2.4三角网的修正 利用上述算法构建的三角网的外轮廓是一个凸 包,一般情况下这个多边形不能作为数模的边界, 这是因为在通常情况下,凸包边界附近存在大量的 狭长三角形,这些三角形并不能真实反映出地表的 形状,因此必须对三角网的边界进行修正,即删除 不必要的狭长三角形。在删除边界上狭长三角形 时,可直接从边界三角形出发,如果该三角形是狭 长三角形就删除该三角形,并且继续在与其相邻的 三角形中寻找狭长三角形,重复上述步骤直到找不 到狭长三角形为止,这样就消除了边界上的狭长三 角形,图4和图5列出了采用上述方法删除边界上 狭长三角形的一个算例,可以看出,该方法的效果 良好。 

图4边界未修正时的三角网 图5边界进行修正后的三角网 3结束语 本文所提三角网剖分算法在构网时无需预先给 定所有数据点,达到了实时生成三角网的目的,弥 补了既有算法的不足。算法工作量的大小主要取决 于三角网优化,在最坏情况下,即新生成的每一个 三角形都要与其它的任意一个三角形进行优化,则

相关文档
最新文档