Delaunay Triangulations
凸多边形(Convex polygon)
概念
在多边形里任取两个点,如果两个点的连线都在多边形的内部,则该多边形就是一个凸多边形。
定义
- 定义1
- 定义2
- 定义3
凸包(Convex hull)
概念
-
相对于一个点的集合来讲,是一个凸的polytope(二维是凸多边形、三维是凸多面体…)。
-
换句话来说,包围集合中的所有点的最小的凸的多边形或凸的多面体。
-
一个凸包的边界上的点如果被去掉,可以形成一个新的凸多边形,且该点不会被包含在新的凸多边形中。
-
凸包的边界上的点被称为extremal point。
凸包构造算法
- 算法1
找出边界点:对于任何一个点p,将该点去掉,在剩下的点集里任选三个点,看点p是否落在任意三个点形成的三角形内部,如果是,则不是边界点。
O(n4),四层for循环。 - 算法2
找出边界线:任找一条边,测试所有的点是否在该边的同一侧,如果是,则该边是边界线。
O(n3),三层for循环
三角化(Triangulation)
概念
将多边形分成多个三角形,便于计算多边形的面积等等。
点集的三角化
- 求点集的凸包,对凸包做三角化,且点集中的点都是三角形的顶点。
- 三角化所有的三角形的并就是输入的点集的凸包。
- 三角形的所有的顶点的集合就是输入的点集。
- 对于任意两个三角形的交集只能是一条边或一个顶点或空集。(与三角网格中没有非流形的边或非流形的点一致)
Delaunay triangulation
- 空圆性:对于三角化中的任意一个三角形,构造出其外接圆(circumcircle),除了这三个点,所有的点都不落在该圆内部,可以落在该圆的边界上。
- 例子:四个点
(b) 做一次flip可以切换为Delaunay triangulation。
© 四个点共圆,任意连接都满足要求。
Lawson Flip algorithm
- 目的:生成Delaunay triangulation。
- 步骤:
- 使用任意方法对点集做初始的三角化。
- 循环:任找一条边,判断其两边的两个三角形是否满足空圆性,不满足做Flip操作。直到所有的边满足该性质。
- 证明该算法的收敛性:
- 定理描述
- 点集P,初始三角化T。
- 该算法最多经过O(n2)次flip操作终止。
- 最终的结果三角化D是P的一个Delaunay triangulation。
-
Lifting Map
- 把点映射到三维上的一个点(x,y),或者说竖直地拉升到三维上,坐标变成(x,y,x2+y2)。
- 把点映射到三维上的一个点(x,y),或者说竖直地拉升到三维上,坐标变成(x,y,x2+y2)。
-
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 (x−xc)+(y−yc)2=r2=>x2−2∗x∗xc+xc2+y2−2∗y∗yc+yc2=r2=>3D中有x2+y2=z=>z−2∗x∗xc−2∗y∗yc=r2−xc2−yc2
- Termination
做一次Flip
每做一次Flip,将top三角形变成bottom三角形,体积会减少四面体 a ^ b ^ c ^ d ^ \hat{a} \hat{b} \hat{c} \hat{d} a^b^c^d^的体积大小。体积是单调下降的,体积是不会减少到0,是有界的,所以一定可以在有限次迭代结束,因此算法是收敛的。
- 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的外接圆内,矛盾。
最大化最小角
- 概念
- Delauny triangulation另一个性质可以最大化最小角,最小角会被提升。
- 可以找出给的每个三角化中的最小角,其中Delaunay triangulation的最小角是最大的,所以不代表trianglation里没有小角。
- 最小角最大化方法
- 做完 flip 后角度会变大,每次的 flip 操作都可以提升最小角。
- 额外说明:判断空圆性的另一种方法,角1+角3<角2+角4(应该是相等,通过对应弦长来看),说明要做 Flip。
Optimal Delaunay triangulation
优化了一个目标/能量函数:
-
u u u:是lift map 的抛物面。
-
u ^ \hat{u} u^ :是二维平面上的三角化 lift 到三维的抛物面上,是在抛物面上的一个平面上。
-
该目标函数描述的是lift 后空间上的分片线性的三角化和连续的抛物面之间的difference,可以成为高度差。
-
做一次flip操作,减少一个四面体的体积,也使 u u u和 u ^ \hat{u} u^更接近,也是在minmize这个目标函数。
???高斯赛德尔迭代:每次只动一个点,对该点处求梯度。