Delaunay对带有孔的二维多边形进行三角测量

我想对带有孔的复杂(但不是自相交)多边形进行三角测量,以便生成的三角形全部位于多边形内部,完全覆盖该多边形,并遵守Delaunay三角形规则。

显然,我可以为所有点构建Delaunay三角剖分,但是我担心多边形的某些边缘不会被包含在产生的三角剖分中。

那么,这样的三角测量是否可能? 如果是,我该怎么办?

以防万一 – 我需要它来构造多边形中轴的近似值(我希望它可以通过连接所得三角形的所有圆周点来完成)。

听起来你想要受限制的Delaunay三角测量 。 “孔”可以通过约束输入边缘以在三角测量中保持不间断来实现。

有关实现,请参阅Triangle和poly2tri项目。

这是我在为RTS游戏进行navmesh时提出的方法之一。 请注意,它是自制软件,没有使用第三方工具,我花了大约3个星期来实现和修复错误:

  1. 将所有点都馈入Delaunay三角剖分(以获得最均匀的三角形)
  2. 检查沿Delaunay生成的孔轮廓和翻转多边形对以匹配轮廓
  3. 夹孔内脏

结果(plz忽略紫色轮廓):

在此处输入图像描述