Delaunay用孔对2d多边形进行三角剖分

问题描述

| 我想用孔对复杂的(但不是自相交的)多边形进行三角剖分,以使生成的三角形全部位于多边形内,完全覆盖该多边形,并遵守delaunay三角规则。 显然,我可以为所有点构建delaunay三角剖分,但我担心多边形的某些边不会包含在所得三角剖分中。 那么,这样的三角剖分可能吗?如果是的话,我该怎么办? 以防万一-我需要它来构造多边形中间轴的近似值(我希望可以通过连接所得三角形的所有圆周点来完成)。     

解决方法

听起来好像您要约束Delaunay三角剖分。可以通过限制输入边使其在三角测量中保持不中断来实现“孔”。 有关实现,请参见Triangle和poly2tri项目。     ,这是我为RTS游戏制作导航网格时想到的方法之一。请注意,这是自制程序,没有使用任何第三方工具,我花了大约3周的时间来实现和修正错误: 将所有点馈入Delaunay三角剖分(以获取最均匀的三角形) 检查孔轮廓并翻转Delaunay产生的多边形对以匹配轮廓 夹孔内部 结果(plz忽略紫色轮廓):