浅谈Delaunay三角剖分

来源:互联网 发布:淘宝联盟推广设置 编辑:程序博客网 时间:2024/05/02 14:27
  在3D建模中,通常得到一系列散乱的点集,该点集描述了物体外表面的几何特征和构造。为了用三角网格进行描述物体表面,沃恩则需要对其进行三角剖分。

    二维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空洞。

原创粉丝点击