试图三角化一组简单的 2d 多边形,我想出了这个算法:
- 1)对于多边形中的每个顶点,计算两个链接边之间的角度
- 2)通过减少相对于多边形内部的角度对顶点进行排序
- 3)如果集合中的顶点少于3个,我们就完成了
- 4) 取集合中的最后一个顶点,输出由它和它的两个邻居组成的三角形
- 5)从集合中移除顶点
- 6)更新两个邻居的角度
- 7) 跳转到 2
我已经对其进行了测试,发现它甚至可以在非常大且复杂的简单二维多边形上工作(它不适用于带有孔的多边形或自相交的多边形)。
是否存在会产生退化结果的极端情况?
这个算法是已知的吗?
如果不是,我想确定这个算法是坚如磐石的,但我没有数学背景来证明它。
非常感谢。