如何計算兩個矩形之間的最小距離?
對於沒有角度的矩形(即0
度1)很容易,但對於旋轉具有任何不同角度的矩形我不知道該怎麼做。
你能推薦任何方式嗎?不同角度的兩個旋轉矩形之間的最小距離
WhiteFlare
如何計算兩個矩形之間的最小距離?
對於沒有角度的矩形(即0
度1)很容易,但對於旋轉具有任何不同角度的矩形我不知道該怎麼做。
你能推薦任何方式嗎?不同角度的兩個旋轉矩形之間的最小距離
WhiteFlare
檢查他們要麼相交第一(嘗試從一個矩形採取點,並檢查它要麼是其他矩形內)。
有幾種方法可以做到這一點。一種方法(不是最好的一個,但容易解釋)如下。
讓A1
,A2
,A3
, A4
- 矩形點,T
- 其他一些點。
然後計算三角形的平方:S1 = (A1,A2,T)
,S2 = S(A2,A3,T)
,S3 = S(A3, A4, T)
,S4 = S(A4, A1, A2)
。
讓S_rectangle
爲矩形正方形。
然後T
位於矩形內< =>S1 + S2 + S3 + S4 = S_rectangle
。
如果矩形不相互交叉,則執行以下步驟。
計算2個矩形的所有8個點的座標。
在所有4 * 4 = 16對點(不同矩形的點)中取最小值。
讓我們把它表示爲min_1
。
然後,採取一些點從所述第一矩形(4種方式去做),
採取從該點或者垂直於該段段內部獲得4段另一個矩形的(4路),
檢查。
採取這樣的垂直Mininmum。我們來表示它min_2
。
與3
相同,但從第二個矩形取點,從第一行開始:
您得到min_3
。
result = min(min_1, min_2, min_3)
非常感謝。這似乎OK :) – WhiteFlare 2010-06-14 20:39:10
@WhiteFlare,歡迎您! – Max 2010-06-14 20:44:54
如果它們相交怎麼辦? – 2010-06-14 20:44:59