2011-08-19 60 views

回答

2

我不這樣做往往,但你可以這樣來做:

  • 檢查是否有4個矩形的是多邊形內部
  • 檢查任何的(10?多邊形的)點位於矩形

所以這可能是淪爲「point in polygon」的問題裏面。同樣,可能有更好的解決方案。

0

你應該看看基於「分離軸定理」的算法。它幾乎是快速二維碰撞檢測的標準,因爲它(你可能已經猜到了)速度非常快(根本不涉及像sin/cos/sqrt/exp這樣的任何分割或昂貴的操作),也適用於任何可能的凸面形狀(甚至是圓圈)。

這裏有一個很好的教程解釋它:http://www.codezealot.org/archives/55

一件事,使得它如此之快是算法具有「早期輸出」的場景,在這裏你測試一個軸,如果它不返回預期的結果,你可以退出整個算法,知道形狀不會相互碰撞。

該文章的一個不錯的副作用是它吐出了需要將碰撞形狀分開的最小可能位移矢量。