题
我正在尝试对在3d模型中使用的多边形进行三角剖分。当我尝试对点如下所示的多边形使用耳法时,会得到红线所在的三角形。由于这些三角形内没有其他点,因此这可能是正确的。但是我只希望它对黑线内的区域进行三角剖分。任何人都知道会执行此操作的算法吗?
解决方案
有许多用于对多边形进行三角剖分的算法,不需要首先将其划分为单调多边形。我的教科书 C语言中的计算几何学 中对此进行了描述,该书中有代码可以从该链接免费下载(使用C或Java)的与之关联的文件。 首先必须具有与边界遍历相对应的点。我的代码假定为逆时针方向,但是当然很容易更改。另请参见维基百科文章。也许这是您的问题,因为您没有一致地组织边界点?
其他提示
Wikipedia建议将多边形分解为单调多边形。您只需检查所有小于180度的角度即可检查多边形是否为凹面-任何角度大于180度的角都是凹面,您需要在该角处将其折断。
您需要使用EarClipping算法,而不是Delaunay。请参阅以下白皮书: http://www.geometrictools.com/Documentation/TriangulationByEarClipping.pdf
不隶属于 StackOverflow