在任意多边形中,如何检测任何一方与另一方的交叉点的自由度?

时间:2011-05-17 19:58:27

标签: geometry pathgeometry

我正在为旅行商问题绘制一个多边形,并且想要测试任何路径的非交叉点,作为自适应地停止遗传搜索的手段。我只是尝试检查线段或交叉点,但有时我得到的结果不正确,即使仍有一个或多个交叉点,也会终止搜索。

1 个答案:

答案 0 :(得分:1)

这个问题基本上等同于检测任意一组线段中的交叉点。

例如,bentley-ottmann algorithm可用于解决此问题。当然,您可以在找到一个交叉路口后立即终止。

一个天真的检查只会检查每个边缘与每个其他边缘(在多边形中不相邻,因为它们不能相交),但是因为你只需要找到一个交叉点,输出 - 敏感算法(如bentley-ottmann)可以加快你的检查速度。