1
我在使用分離軸定理將矩形投影到不同軸上時在局部座標和全局座標之間轉換時出現問題:http://en.wikipedia.org/wiki/Separating_axis_theorem。最後,我想檢查與另一個物體的碰撞。瞭解分離軸定理和全局/局部座標
比方說,我有一個在全球座標頂點的矩形:爲(1:
(10,20),(10,10),(20,10),(20,20)
因此,本地座標將是:
(-5,5),(-5,-5),(5,-5),(5,5)
這將使4個法線以下每個軸)
(1,0),(0,1),(-1,0),(0,-1)
這樣的最小/最大點產品將是:
(1,0) . (-5,5) = -5
(1,0) . (-5,-5) = -5
(1,0) . (5,-5) = 5
(1,0) . (5,5) = 5
所以這個法線的最小/最大值對是(-5,5),在這種情況下,由於對稱性,所有其他值也是如此。
問題出現在我想將座標轉換回全局座標時。根據我的理解,我需要通過給定軸的投影將最小/最大對移動到其全局位置。
此使用正單位矢量時正常工作:
unit center of rect
(1,0) . (15, 15) = 15
這意味着,所調整的最小/最大值將是15-5,15 + 5 = 10,20這是正確的
但是,我這樣做是爲負單位向量時,我得到:
(-1,0) . (15, 15) = -15, meaning that the min,max values are now (-20,-10)
我不認爲這是正確的嗎?這算法應該如何工作?
注:我試圖讓代碼適用於所有凸多邊形,所以我不能簡單地忽略這個矩形的負單位向量。
注意:維基百科中的文章非常不精確,並且該定理的陳述是錯誤的。在R^2中,取C1 = {(x,y),y≤0},C2 = {(x,y),x> 0且y> = 1/x}。沒有分開C1和C2的線,它們是不相交的並且都是凸的。對於這個定理(文獻中稱爲哈恩 - 巴納克定理)而言,C1和C2必須是開放的,或者C1和C2必須是封閉的,並且至少有一個必須是緊湊的。 – 2011-04-07 15:04:57