是否有一种有效的算法来查找一组无限线的所有交点?

时间:2019-03-27 06:14:02

标签: algorithm geometry computational-geometry

有高效的(与O(n 2 )成对测试相比)算法,可以找到一组线段中的所有交点,例如Bentley-Ottmann算法。但是,我想找到一组无限线中的所有交点。当感兴趣的区域是像矩形这样的有限区域时,可以在剪切线之后应用线段相交算法。但是

  • 有没有比仅剪切线和应用线段相交算法更简单或更有效的方法?
  • 对于一组线,整个平面上的所有相交处是否存在有效的算法?

2 个答案:

答案 0 :(得分:7)

通常情况下(并非所有线都是平行的)有O(n ^ 2)个交点,因此使用交点计算进行简单循环是最好的方法
 (没有计算就无法获得n*(n-1)/2分)

对于存在的情况,许多平行线首先会按方向分组,只检查不同组中的线之间的交点

答案 1 :(得分:1)

如果线在一般位置,则所有线对都相交,并且穷举计算是最佳的。