2011-11-19 47 views
10

我正在尋找將2D線段連接在一起的方法。線段由兩個向量點組成,即線段的起點和線段的終點。合併2D線段

我想連接看起來應該形成相同直線的線段,如果它們具有完全不同的方向但碰巧有2個點彼此靠近,我不想加入線段。我將要使用的這個系統是一個計算機視覺系統,所以獲得的線段不會很完美,即方向可能稍微偏離,這些段可能不是全長e.t.c.

我認爲下面3個例子覆蓋排序線段我想加入一起:

Example

感謝

回答

8

這是計算幾何的問題有可能是在相關教科書的一些解決方案,但要警告這些問題通常很難解決,有限精度是一個真正的問題。關於這個問題(在2D中),您可能要查找的術語是線條靠近collinear。通常,如果要確定線是共線的,首先將它們放入vector representation,然後取兩個向量之間的點積,這將等於線之間角度的餘弦。所以,如果這個值接近一個,他們接近共線,應該加入。

下一個問題是確定行是否足夠接近需要加入。你可以通過找到intersect或查找具有非常接近的開始點和結束點的行來做到這一點......這通常不是那麼容易,但你可以通過這種方式獲得95%的結果。