赞
踩
点集的三角剖分(Triangulation),对数值分析(比如有限元分析)以及图形学来说,都是极为重要的一项预处理技术。尤其是Delaunay三角剖分,由于其独特性,关于点集的很多种几何图都和Delaunay三角剖分相关,如Voronoi图,EMST树,Gabriel图等。Delaunay三角剖分有最大化最小角,最接近于规则化的三角网和唯一性(任意四点不能共圆)两个特性。
Delaunay三角剖分广泛应用于许多不同应用程序中的科学计算。虽然有大量的计算三角剖分的算法,但Delaunay三角剖分以其实用的几何属性广受欢迎。
三角剖分就是对给定的平面点集,生成三角形集合的过程。考虑平面点集P={P1,…,Pn},我们希望得到三角形集合T=在{t1,…,tm},满足:
一般来说,给定一个点集,往往存在不止一个三角剖分。以下图为例,我们只要把第一个三角剖分中的两个相邻三角形的公共边做一次翻转,就可以得到一个新的三角剖分。
由于给定点集的三角剖分不唯一,我们希望从中挑选出一个“最优”的三角剖分。那么何为最优?这涉及到三角形“质量”的评定。一般在数值计算中,我们不希望三角形过于狭长,也就是说越接近等边三角形越好。以下是几种常见的质量评定标准:
所有三角形的外接圆均满足空圆性质的三角剖分,称为一个Delaunay三角剖分。
左图的三角剖分是Delaunay的,任何一个三角形的外接圆内部都不包含点集中的顶点;
右图的三角剖分不是Delaunay的,因为下面的两个三角形的外接圆内部包含了顶点。
对一个三角剖分T,以下三个命题互相等价:
定理:对三角剖分T中的一条边e,若它不是局部Delaunay的,则可以被翻转成为一条局部Delaunay边e’。
边的翻转:假设一条边e属于两个三角形t1,t2,这两个三角形的合集所构成的四边形有两条对角线,e为其中一条。现在用另一条对角线e’替换e,得到两个新的三角形t1’,t2’,并用这两个新的三角形替换原三角剖分中的t1,t2,得到新的三角剖分T’。这个操作称为边的翻转。
每进行一次翻转边操作时,都把三角剖分“局部”地改善了。更具体的讲,有以下结论:
根据Delaunay引理,对任意一个三角剖分T,只要持续进行上述的翻转边操作,最终总可以转化为一个Delaunay三角剖分。
由于Delaunay三角剖分的唯一性,两种算法在效果上没什么区别。但Bowyer-Watson算法因为缩短了搜索坏边的过程,效率会更高一些,所以实际应用中我们往往使用Bowyer-Watson算法。
生成三角网格与构造三角剖分的主要区别在于,点集P并非给定,需要自己去生成。而一旦确定了点集P,剩下的工作就是构造三角剖分了。实际上,生成点集P与构造三角剖分的过程是同时进行的,其过程如下:
这里要注意的是,每个面上的点需要两份编号,一个局部(local)编号用于参数区域上的三角网格,及一个全局(global)编号用于三维空间的整体三角网格。在网格生成过程中需要时刻保持这两种编号的对应关系。
参考文章:
https://zhuanlan.zhihu.com/p/459884570
https://ww2.mathworks.cn/help/matlab/math/delaunay-triangulation.html
https://blog.csdn.net/qq_43258953/article/details/105080150
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。