如何在没有随机内点的情况下对多边形进行三角测量?

时间:2011-01-18 20:53:53

标签: algorithm language-agnostic geometry computational-geometry

我想创建三角形预定义的多边形。我的要求是我不想在这个多边形内部创建随机点,以便使用Delaunay三角剖分算法对其进行处理。
多边形可以是凹的或凸的。

我完全可以使用Delaunay三角测量但我不想在多边形内部创建随机点。如果我能在这个多边形内创建尽可能少的点,那就更好了 我想尽量减少使用三角形的数量。

我如何建立这个?

评论:这更像是一种与语言无关的东西,我想知道如何自己实现这一点。

3 个答案:

答案 0 :(得分:5)

您可以使用Ear Clipping or monotone polygons。这两种算法都不会引入额外的分数。

(如果你选择形成单调多边形,单调多边形是凸的,可以直接分成三角扇。)

答案 1 :(得分:2)

我找到了非常有帮助的库Poly2Tri。这个库的Java分支完全符合我的需要。

我只需要正确使用它。它不会向多边形添加任何点。

答案 2 :(得分:0)

如果多边形是凸的,则很容易使用边界并使用沿边界的点进行三角测量。如果它是非凸的,我会形成一个凸边界,并标记插入插入的点。然后,完成其他所有操作后,删除插入的点。

如果得到细长的三角形,您还可以使用网格细化算法来细化网格。使用Delaunay,您可以通过某种定义检查三角形是否“薄”,如果它是“薄”,则在该三角形的外心中插入一个点。因此,你所要做的就是使用德劳内理论。