2012-07-24 29 views
0

我有幾個線段。線條是隨機的。我必須檢查任何兩行之間是否有交集。線路可能連接或不連接。對於這個問題什麼是最好的算法。線間斷橫向

代碼示例非常感謝。

編輯:線段

+1

線條或線段?如果它們是線條,那麼你只需要檢查它們是否平行。 – assylias 2012-07-24 10:25:43

+0

嘿,線段不只是線條。無論如何感謝 – rokonoid 2012-07-24 10:32:22

+1

@assylias如果他們是平行的,他們仍然可以相等(並因此相交...) – Matthias 2012-07-24 10:33:55

回答

4

假設你正在談論線段這裏(否則,簡單地比較直線的斜率:如果他們有不平等的斜坡,它們相交)。

要確定一個2個或多個線段中是否存在[單個]交叉點,可以使用Shamos-Hoey算法。

要找到所有在2個或多個線段集合中的交點,可以使用Bentley-Ottmann算法。

實施這兩種基於其他「掃描線」的算法,大量使用available on the internet