二维Delaunay三角剖分:
Delaunay边:e是E中满足以下条件的边:存在一个圆经过其端点a b,圆内不包含点集V中的其他任何点。
Deluanay三角剖分:如果V的一个三角剖分T只包含Delaunay边,那么该三角剖分为Deluanay剖分。
Deluanay 三角剖分的特性:
(1)最大化三角剖分T中所有三角形的最小角,以避免出现过于扁平的三角形。
(2)三角剖分T的任何一个三角形的外接圆满足空圆性质:该圆内不包含任何其他点。(局部优化处理)
(3)四边形对应的剖分对角线两边的角度之和小于或者等于180,则该剖分满足Delaunay特性。
对于任意四边形,都可通过修改对角线的方法来得到Delaunay三角剖分。
算法描述:
输入:平面有限点集
输出:Delaunay三角剖分T
构建散点集V的任意一个三角剖分T
T中所有不满足空圆特性的内部边都压入栈并且做标记。
while 栈非空 do
begin
pq=pop()
去掉pq标记。
if pq不符合空圆特性 then
begin
用所在四边形的另一条对角线代替他,并将四边形的4条边中未标记的边压入栈。
end
end
return T
另一种方法:随机增量算法
该方法首先用一个足够大的三角形围住一堆随机排列的散列点,然后依次从点集中插入新点,不断更新当前的三角剖分,直至所有点插入完毕。
三维Delaunay三角剖分:
常用方法是,先在二维平面上对其进行三角剖分,然后加上高度数据,来得到三维三角形剖分。在各个方法存在投影变形。
有一个适用于平面和空间三角剖分的算法,该算法的实质上是不断往点集中添加新顶点,然后通过Delaunay空洞的特性构造新的剖分。
Delaunay空洞:在Delaunay三角剖分T中添加一个新顶点P,删除所有外接圆包含P的三角形,形成一个新的三角形集合B,则B成为Delaunay空洞。