三角剖分与Delaunay三角剖分及带约束的Delaunay三角剖分

本博客参考 http://blog.csdn.net/raby_gyl/article/details/17409717
http://baike.baidu.com/view/1691145.html?tp=2_11
http://www.geomodel.net/article/code/20080601/7510.html
https://github.com/gwlucastrig/Tinfour/wiki/About-the-Constrained-Delaunay-Triangulation

1 三角剖分与Delaunay三角剖分是什么

1.1 三角剖分是什么
如何把散点集合剖分成的三角形网格,这就是三角剖分问题,通俗讲就是将无组织的点,连入三角网格中。三角剖分对图形学来说,是极为重要的一项预处理技术。
三角剖分与Delaunay三角剖分及带约束的Delaunay三角剖分_第1张图片
假设V是二维上的有限点集,边e是由点作端点构成的线段, E为e的集合。那么该点集V的一个三角剖分T=(V,E)满足:
1.除了端点外,边不包含其它点。
2.没有相交边。
3.平面图中所有的面都是三角面,且所有三角面的合集是散点集V的凸包。
1.2 Delaunay三角剖分是什么
Delaunay三角剖分:将一些无结构的散点组合成一个三角形网格,在很多方面这个三角形网格是最优的。Delaunay是一种特殊的,也是运用最多的三角剖分。
假设E中的一条边e(两个端点为a,b),e若满足下列条件,则称之为Delaunay边:存在一个圆经过a,b两点,圆内(注意是圆内,圆上最多三点共圆)不含任何点。如果点集V的一个三角剖分T只包含Delaunay边,那么该三角剖分称为Delaunay三角剖分。

2 Delaunay三角剖分的要求、特性及构造

2.1 Delaunay三角剖分的要求
1、空圆特性:Delaunay三角网格是唯一的(任意四点不能共圆),在Delaunay三角形网中任一三角形的外接圆范围内不会有其它点存在。
三角剖分与Delaunay三角剖分及带约束的Delaunay三角剖分_第2张图片
2、最小角最大特性:在散点集形成Delaunay三角剖分中,所形成的三角形的最小角最大。具体的说是指交换任意两三角形构成四边形的对角线,六个内角的最小角不再增大。如下图所示:
三角剖分与Delaunay三角剖分及带约束的Delaunay三角剖分_第3张图片
2.2 Dealaunay三角剖分的特性
1.最接近:以最近的三点形成三角形。
2.唯一性:不论从区域何处开始构建,结果一致。
3.最优性:任意两个相邻三角形形成的凸四边形的对角线互换,两个三角形最小的角度不会变大。
4.区域性:新增、删除、移动某一个顶点时只会影响临近的三角形。
5.凸包:三角网最外层的边界形成一个凸多边形的外壳。
2.3 一种Delaunay的构造过程——逐点插入法
Delaunay剖分是一种三角剖分的标准,实现它有翻边算法、逐点插入算法、分割合并算法、Bowyer-Watson算法等。
理论上为了构造Delaunay三角网,Lawson提出的局部优化过程LOP(Local Optimization Procedure),一般三角网经过LOP处理,即成为Delaunay三角网,其基本做法如下所示:
1.将两个具有共同边的三角形合成一个多边形。
2.以最大空圆准则作检查,看其第四个顶点是否在三角形的外接圆之内。
3.如果在,修正对角线即将对角线对调,即完成局部优化过程的处理。
LOP处理过程如下图所示:
三角剖分与Delaunay三角剖分及带约束的Delaunay三角剖分_第4张图片
逐点插入的Lawson算法思路简单,易于编程实现。基本原理为:首先建立一个大的把所有数据点包围起来的凸包,向其中插入一点,该点与包含它的三角形三个顶点相连,形成三个新的三角形,然后逐个对它们进行空圆检测,同时用Lawson设计的局部优化过程LOP进行优化,即通过交换对角线的方法来保证所形成的三角网为Delaunay三角网。
由逐点插入的构网过程可知,遇到非Delaunay边时,通过删除调整,可以构造形成新的Delaunay边。在完成构网后,增加、删除、移动新点时,只需对新点的影响三角形范围进行局部联网。但在实际应用当中,如果点集范围是非凸区域或者存在内环,则会产生非法三角形。

3 带约束的Delaunay三角剖分

3.1 产生原因
Delaunay总是连接最相邻的点,有时这是不合适的。例如碰到断崖、狭窄的海岸线等。如果继续选择最相邻的点就会出现下面情况(网格会画到陆地上):
三角剖分与Delaunay三角剖分及带约束的Delaunay三角剖分_第5张图片
3.2 措施
在三角网格中插入一组边,约束网格中顶点只能在自己的区域内连接。
三角剖分与Delaunay三角剖分及带约束的Delaunay三角剖分_第6张图片
3.3 缺点及解决

  1. 出现太skinny,不符合Delaunary准则的三角形
  2. 不能映射成Voronoi Diagram这种重要的图形结构

    可以沿着插入边增加合成点来解决这种缺陷。最好的方法是不断的取中点添加,这样用最少的额外点来达到目的。
    三角剖分与Delaunay三角剖分及带约束的Delaunay三角剖分_第7张图片

你可能感兴趣的:(图形学)