2013-01-06 62 views
1

我對2段線段有疑問。假設我們有兩條線段,其原點和長度分別爲:(P0,L0)和(P1,L1)。我需要找到他們什麼時候能夠在同一點結束。線段位於3D空間的任何位置。2具有相同終點的線段

我能想到的一種方法是:讓我們說這個共同的終點是T,點是A和B.所以對於以A和B爲原點的線段,A,B和T必須組成一個三角形。向量AT = L0的長度和向量BT = L1的長度。但由於線段的方向未知,因此可能有很多可能性。比方說,我們選擇線段AT的特定方向爲(i,j,k) - 第1個八分圓。所以現在我們可以在T的任何地方移動空間,但只能在距離L1上找到BT。

這是我不知道如何前進的地方。

回答

2

當且僅當P0P1之間的距離小於或等於L0 + L1時,線段才能在同一點結束。在這種距離等於L0 + L1的特殊情況下,線段在空間中具有相同的方向並位於同一條線上。

去想這方面的一個辦法是問,如果周圍P0P1兩個球與半徑L0L1相交或至少相互接觸。交點(觸摸)的圓(點)是您的線段可以具有相同的終點的地方。

+0

發誓!我沒有想到球形交叉口的解釋。你提到的特例。你確定他們有相同的方向嗎?這可能是解決方案之一。當三點形成一個三角形時,也不會d = L0 + L1嗎?還有一件事。一旦我們測試了這一點,如果我想運行一個要迭代的值來測試,可以接受的值範圍是什麼。 – RJSkywalker

+0

我相信他們形成一條線。有關詳細說明,請查看「三角不平等」。在'd == L0 + L1'的情況下,你的三角形將被摺疊成扁平線。無需測試。經過驗證的數學。 –

+0

哦,明白了。值範圍呢?我是否需要單獨輸入值,因爲我希望函數返回所有有效公共端點的列表 – RJSkywalker

相關問題