【发布时间】:2014-05-09 05:37:01
【问题描述】:
我正在寻找一种算法,该算法从线列表中计算给定点 (P) 所在的区域。这些线与 x 和 y 坐标一起存储,生成的区域应该存储为一个多边形,它可以里面有洞。
这里有两张图片来说明我的意思:
许多 CAD 应用程序使用此类算法来让用户孵化区域。我不知道如何调用这样的方法,所以我真的不知道要搜索什么。
编辑 1: 明确我要查找的内容:
我不需要算法来计算多边形的面积,我需要一个算法来返回由 P 周围的线形成的多边形。如果 P 在任何可能的多边形之外,算法就会失败。
(我还编辑了图像)
编辑 2: 我阅读了this possible duplicate 的公认答案,我正在寻找点定位算法。 我还偶然发现了this site,它确实解释了我在寻找什么,更重要的是,它让我找到了开源CGAL library,它提供了执行此类操作的功能。 CGAL manual 的第 4.6 点给出了一个示例,如何使用该库从一堆线段中形成一个区域。
【问题讨论】:
-
如果您对多边形进行三角剖分,则您已成功将其分解为我们知道如何计算面积的形状。剩下的就是对每个三角形的面积求和。这将涉及找到绑定
P的线的交点,因此线-线交点。 -
这看起来像一个简单的多边形中的点问题。点击您最喜欢的搜索引擎,或在 SO 上搜索该短语。
-
我没有可以三角剖分的多边形 - 我只有可以形成多边形的线。我需要一个算法来给出那个多边形(如果它存在的话)。