2010-06-14 41 views

回答

1
  1. 檢查他們要麼相交第一(嘗試從一個矩形採取點,並檢查它要麼是其他矩形內)。
    有幾種方法可以做到這一點。一種方法(不是最好的一個,但容易解釋)如下。
    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. 計算2個矩形的所有8個點的座標。

  3. 在所有4 * 4 = 16對點(不同矩形的點)中取最小值。
    讓我們把它表示爲min_1

  4. 然後,採取一些點從所述第一矩形(4種方式去做),
    採取從該點或者垂直於該段段內部獲得4段另一個矩形的(4路),
    檢查。
    採取這樣的垂直Mininmum。我們來表示它min_2

  5. 3相同,但從第二個矩形取點,從第一行開始:
    您得到min_3

  6. result = min(min_1, min_2, min_3)

+0

非常感謝。這似乎OK :) – WhiteFlare 2010-06-14 20:39:10

+0

@WhiteFlare,歡迎您! – Max 2010-06-14 20:44:54

+1

如果它們相交怎麼辦? – 2010-06-14 20:44:59

1
  1. 計算座標的2個矩形所有8個 點。
  2. 取 全部4 * 4 = 16對點 (不同矩形的點)中的兩個最低距離。 並獲得3點P1,P2和P3 {其中兩個屬於一個矩形 第三到其他}
  3. 2點屬於一個矩形 應視爲段,現在 發現短距離在 分部和第三點之間。