100种算法【Python版】第55篇——Delaunay三角剖分之Bowyer-Watson算法
本文目录
- 1 Bowyer-Watson算法步骤
- 2 算法示例
- 3 python代码
Bowyer-Watson算法是一种常用的Delaunay三角剖分算法,主要通过增量方式逐步构建三角剖分。以下是该算法的详细步骤及具体示例。
1 Bowyer-Watson算法步骤
(1)初始化:
- 创建一个包含足够大的超级三角形(supertriangle),这个三角形应包含所有待处理的点。
(2)逐点插入:
- 对于每个待处理的点,执行以下步骤:
- 查找包含该点的三角形:遍历当前的三角剖分,找到所有包含该点的三角形。
- 删除这些三角形:将找到的三角形从剖分中删除,并记录它们的边。
- 构建新三角形:用新点和剩余的边重新构建三角形。
(3)清理边界:
- 在形成的新三角形中,检查是否存在边属于已经被删除的三角形的边(即“边界”)。
- 只保留那些在Delaunay条件下有效的三角形。
(4)输出结果: