欢迎关注更多精彩
关注我,学习常用算法与数据结构,一题多解,降维打击。
算法提出
给定一个点集P, 通过Lawson Flip 算法可以得到一个delauney 三角化, 其算法过程如下:
delauney三角化基本性质
- 通过扫描算法得到一个普通三角化。扫描三角化
- 遍历每条边,如果该边所关联的两个三角形不满足空圆性,则翻转这一条边。
正确性证明
Lawson Flip 算法是可收敛的
先引入一个模型 lifting map
我们可以利用lifting map证明Lawson Flip算法是收敛的。
由于四边形ABCD的剖分满足空圆性,投影到lifting map时,D’会在A’C’B’所在平面之上,反之A’也是一样。
把BC边 flip后将不再满足空圆性。
投影到lifting map时,B’会在A’C’D’所在平面之下,反之C’也是一样。
由上述分析可知,对于同一个4边形的不同三角化,将在lifting map上的点与原始对应点连接,可以得到不同的闭合空间,方便查看,去除抛物面。
从体积上比较,满足空圆性的体积会减小。减小的体积量刚好是由A’B’C’D’组成的四面体的体积。
那么可以得到一个结论:每次flip操作,相对应在体积上的表现就会减小,而整体体积肯定是有一个下界,当没有flip 可以减小体积时,算法就停止了。
所以Lawson flip算法是收敛的。
Lawson Flip 算法绵结果是一个delauney三角化
Lawson Flip 是可以保证局部的空圆性(同一个4边形中一个三角形的外拉圆不包含剩下一个点),需要证明全局的圆性。
反证法:
假设
除了四边形4点外,还有一个点p在三角形外接圆内部。
p是在圆C里面,我们再把相邻的三角形外接圆C’也作出来,由于圆C,C’ 有共同的弦sd, 那么C’ 被弦sd切割的上半部分肯定是包含C被弦cd切割的上半部分。
局部空圆性p不在C’里面,那肯定也不在圆C里。
故假设
不成立。
所以,全局空圆性得证,Lawson flip 算法结果是一个delauney 三角化。
本人码农,希望通过自己的分享,让大家更容易学懂计算机知识。创作不易,帮忙点击公众号的链接。