2015-09-30 278 views
0

我有兩個問題,第一條如何計算兩條線之間的最小距離。 有關詳細信息,請在此處附上圖像。計算兩條線和兩條弧之間的最小距離

enter image description here

在圖像描述與開始和結束點的直線。我已經有兩條線的起點和終點,但我不知道如何計算兩條線之間的最小距離。

另一個問題是如何計算兩個弧之間的最小距離。 我在這裏

enter image description here

連接其他映像弧我的起點,終點和中心點也是我有開始和結束的角度。

該鏈接有很多更多的東西 - Shortest distance between a point and a line segment

我也得到了幫助,從上面的鏈接。

enter image description here

這是我現在面臨的另一個問題。在這種情況下如何計算兩個弧之間的最小距離?

任何想法如何解決這兩個問題?

回答

-1

兩條相交線之間的距離爲0

否則,您需要的是計算其中一條線的端點。 如果要計算一個點和一條線之間的距離:

它是連接點到線和垂直於所述線的線段的長度。

對於弧線,我認爲弧線是圓的一部分,它們之間的距離是它們的中心點之間的距離並減去它們的半徑。

也許你可以找到更多在這裏:Calculate the minimum distance between two given circular arcs

example

+0

這裏的行不相交。 –

+0

我剛剛編輯了我的答案。你可以檢查 –

+0

你能告訴我一些例子嗎,或者你有什麼相同的代碼? –

1

讓兩個路段AB和CD。它們的參數方程可以寫成

P = A + u AB, Q = C + v CD, with u, v in [0, 1]. 

你想最小化(平方)距離

PQ² = (CA + u AB - v CD)², under the given constraints, 

,您可以用

(CA + u AB - v CD).AB = 0 
(CA + u AB - v CD).CD = 0 

取消一階導數的2×2系統的解析後你得到一雙(u, v)。如果兩個變量落在[0,1]之間,則有一個交點,距離爲0

否則,將u和/或v鉗位到範圍[0, 1]的相關邊界並計算相應的距離。

如果一個變量被鉗位,則該距離位於終點和段之間;如果兩個人被夾住,那是在兩個端點之間。


類似的方法可以用於弧(使用三角函數),並導致線性約束下的優化問題。儘管目標函數是非線性的,但不太容易處理。


我們還可以進行如下操作:

  • 發現,使整個圓之間的最短距離的點。有兩種情況:

    • 的圓相交,在兩個地方

    • 圓不相交;最短距離在兩個圓的交點和中心線之間。

  • 然後通過角度比較檢查這些點是否屬於弧。如果是,則完成(距離爲0或交叉點之間的距離)。

  • 否則,考慮對另一個圓的弧的端點。最接近的點是圓與通過點和中心的直線的交點。如果交叉點屬於弧線,則保持該點與交點之間的距離。對所有四個組合端點/弧重複此操作,並保持最接近的一對。

  • 如果找不到有效配對,請保持最短的端點/端點距離。

圖爲可以考慮的距離。綠色,終點/圓圈;紅色,終點/終點。在這種情況下,圓/圓距離在交叉時爲零。如果連接弧線內的兩個點,則可以考慮距離。

enter image description here

相關問題