数字几何处理(2020-05-12)

Delaunay Triangulations

凸多边形(Convex polygon)

概念

在多边形里任取两个点,如果两个点的连线都在多边形的内部,则该多边形就是一个凸多边形。

定义

  • 定义1
    在这里插入图片描述
  • 定义2
    在这里插入图片描述
  • 定义3
    在这里插入图片描述数字几何处理(2020-05-12)_第1张图片

凸包(Convex hull)

概念

  • 相对于一个点的集合来讲,是一个凸的polytope(二维是凸多边形、三维是凸多面体…)。
    数字几何处理(2020-05-12)_第2张图片

  • 换句话来说,包围集合中的所有点的最小的凸的多边形或凸的多面体。

  • 一个凸包的边界上的点如果被去掉,可以形成一个新的凸多边形,且该点不会被包含在新的凸多边形中。

  • 凸包的边界上的点被称为extremal point。

凸包构造算法

  • 算法1
    找出边界点:对于任何一个点p,将该点去掉,在剩下的点集里任选三个点,看点p是否落在任意三个点形成的三角形内部,如果是,则不是边界点。
    O(n4),四层for循环。
  • 算法2
    找出边界线:任找一条边,测试所有的点是否在该边的同一侧,如果是,则该边是边界线。
    O(n3),三层for循环

三角化(Triangulation)

概念

将多边形分成多个三角形,便于计算多边形的面积等等。

点集的三角化

  • 求点集的凸包,对凸包做三角化,且点集中的点都是三角形的顶点。
  • 三角化所有的三角形的并就是输入的点集的凸包。
  • 三角形的所有的顶点的集合就是输入的点集。
  • 对于任意两个三角形的交集只能是一条边或一个顶点或空集。(与三角网格中没有非流形的边或非流形的点一致)
    数字几何处理(2020-05-12)_第3张图片

Delaunay triangulation

  • 空圆性:对于三角化中的任意一个三角形,构造出其外接圆(circumcircle),除了这三个点,所有的点都不落在该圆内部,可以落在该圆的边界上。
  • 例子:四个点
    (b) 做一次flip可以切换为Delaunay triangulation。
    © 四个点共圆,任意连接都满足要求。

数字几何处理(2020-05-12)_第4张图片

Lawson Flip algorithm

  • 目的:生成Delaunay triangulation。
  • 步骤:
    1. 使用任意方法对点集做初始的三角化。
    2. 循环:任找一条边,判断其两边的两个三角形是否满足空圆性,不满足做Flip操作。直到所有的边满足该性质。
  • 证明该算法的收敛性:
    • 定理描述
    1. 点集P,初始三角化T。
    2. 该算法最多经过O(n2)次flip操作终止。
    3. 最终的结果三角化D是P的一个Delaunay triangulation。
    • Lifting Map

      • 把点映射到三维上的一个点(x,y),或者说竖直地拉升到三维上,坐标变成(x,y,x2+y2)。
        在这里插入图片描述
        数字几何处理(2020-05-12)_第5张图片
    • Lemma:将2D平面上的一个圆C上的几个点lift到3D上,这几个点在3D上也是共平面S的。对于圆C的内部的点,会落在该平面S的下方。对于圆C的外部的点,会落在该平面S的上方。

      ( x − x c ) + ( y − y c ) 2 = r 2 = > x 2 − 2 ∗ x ∗ x c + x c 2 + y 2 − 2 ∗ y ∗ y c + y c 2 = r 2 = > 3 D 中 有 x 2 + y 2 = z = > z − 2 ∗ x ∗ x c − 2 ∗ y ∗ y c = r 2 − x c 2 − y c 2 \quad\quad(x-x_c)^+(y-y_c)^2=r^2 \\=>x^2-2*x*x_c+x_c^2+y^2-2*y*y_c+y_c^2=r^2 \\=>3D中有x^2+y^2=z \\=>z-2*x*x_c-2*y*y_c=r^2-x_c^2-y_c^2 (xxc)+(yyc)2=r2=>x22xxc+xc2+y22yyc+yc2=r2=>3Dx2+y2=z=>z2xxc2yyc=r2xc2yc2
      数字几何处理(2020-05-12)_第6张图片

  • Termination
    做一次Flip
    数字几何处理(2020-05-12)_第7张图片每做一次Flip,将top三角形变成bottom三角形,体积会减少四面体 a ^ b ^ c ^ d ^ \hat{a} \hat{b} \hat{c} \hat{d} a^b^c^d^的体积大小。体积是单调下降的,体积是不会减少到0,是有界的,所以一定可以在有限次迭代结束,因此算法是收敛的。
    数字几何处理(2020-05-12)_第8张图片
  • Correctness
    • 局部来看,通过Flip,可以满足局部的Delaunay triangulation 的空圆性。
    • 全局的Delaunay满足可以说明局部的Delaunay也满足。
    • 反证法证明局部的Delaunay满足可以说明全局也满足。
      假设w4不满足全局的Delaunay,在 τ \tau τ的外接圆的外部。
      对于局部的Delaunay的满足表现为w1 τ \tau τ的外接圆的外部,w2 τ 1 \tau_1 τ1的外接圆的外部,以此类推,W4 τ 4 \tau_4 τ4的外接圆的外部。
      由于 τ 1 \tau_1 τ1的外接圆包含 τ \tau τ的外接圆的上部,所以W4也在 τ 1 \tau_1 τ1的外接圆内,以此类推,W4 τ 4 \tau_4 τ4的外接圆内,矛盾。
      数字几何处理(2020-05-12)_第9张图片

最大化最小角

  • 概念
    • Delauny triangulation另一个性质可以最大化最小角,最小角会被提升。
    • 可以找出给的每个三角化中的最小角,其中Delaunay triangulation的最小角是最大的,所以不代表trianglation里没有小角。
  • 最小角最大化方法
    • 做完 flip 后角度会变大,每次的 flip 操作都可以提升最小角。
    • 额外说明:判断空圆性的另一种方法,角1+角3<角2+角4(应该是相等,通过对应弦长来看),说明要做 Flip。
      数字几何处理(2020-05-12)_第10张图片
      数字几何处理(2020-05-12)_第11张图片

Optimal Delaunay triangulation

优化了一个目标/能量函数:

  • u u u:是lift map 的抛物面。

  • u ^ \hat{u} u^ :是二维平面上的三角化 lift 到三维的抛物面上,是在抛物面上的一个平面上。

  • 该目标函数描述的是lift 后空间上的分片线性的三角化和连续的抛物面之间的difference,可以成为高度差。

  • 做一次flip操作,减少一个四面体的体积,也使 u u u u ^ \hat{u} u^更接近,也是在minmize这个目标函数。
    数字几何处理(2020-05-12)_第12张图片
    ???高斯赛德尔迭代:每次只动一个点,对该点处求梯度。
    数字几何处理(2020-05-12)_第13张图片

你可能感兴趣的:(图形学,笔记,学习)