我使用的是這裏所描述的算法的實現:http://www.codezealot.org/archives/55分離軸定理:查找其邊緣法線使用
使用此實現,當我想找到兩個碰撞矩形的最小位移向量算法有時候(在兩種情況中的一種情況下是準確的)會給我一個錯誤的「方向」,其中一個矩形需要按下,以便遠離與其碰撞的矩形。它將產生與它應該進入的方向完全相反的方向。
這是因爲(當然)矩形的兩個相對邊緣在數學上當然是相似的,因此產生相同的結果。
這是該算法在Java中實現:
你可以假設Vector2f,Projection2D等功能正常,併產生正確的價值觀。順便說一句,
我使用左手法線,因爲多邊形逆時針組裝。原則上,這應該是足夠的,因爲左手法線總是指向遠離多邊形。問題在於,由於矩形的相對邊的兩個重疊部分將完全相同,所以該算法將簡單地使用第一個和其相應的軸。
感謝您的幫助!