我有几个随机线段。我必须检查任何两个线段之间是否有任何交叉点。线路可以连接或不连接。什么是这个问题的好算法?
答案 0 :(得分:4)
假设你在这里谈论线段(否则,只需比较线的斜率:如果它们具有不相等的斜率,它们相交)。
要确定一组2个或更多线段中是否存在[单个]交集,您可以使用Shamos-Hoey算法。
要在一组2个或更多线段中找到所有交叉点,您可以使用Bentley-Ottmann算法。
这两种算法和其他基于“扫描线”的算法的实现非常丰富available on the internet。