SAT算法要求您找到每個形狀(基本上是垂直於邊緣矢量的矢量)的每個邊緣的法線以用作分離軸。這可以很簡單地完成...確定SAT分離軸定理中的邊緣法線
(X,Y)=>(-y,X)
OR
(X,Y)=>(Y,-X)
SAT算法應該使用哪一個?這基本上是一個問題,應該使用左手正常還是右手正常。它會有所作爲嗎?應該只使用左手還是右手?這種情況應該改變嗎?
見http://www.codezealot.org/archives/55#sat-axes
SAT算法要求您找到每個形狀(基本上是垂直於邊緣矢量的矢量)的每個邊緣的法線以用作分離軸。這可以很簡單地完成...確定SAT分離軸定理中的邊緣法線
(X,Y)=>(-y,X)
OR
(X,Y)=>(Y,-X)
SAT算法應該使用哪一個?這基本上是一個問題,應該使用左手正常還是右手正常。它會有所作爲嗎?應該只使用左手還是右手?這種情況應該改變嗎?
見http://www.codezealot.org/archives/55#sat-axes
它只要不事你使用相同的約定每一張臉,因爲法線被用來計算預測,並比較它們:
Projection p1 = shape1.project(axis);
Projection p2 = shape2.project(axis);
// do the projections overlap?
if (!p1.overlap(p2)) {
的結果(!p1.overlap(p2))
將與這兩個公式相同。
HTH
正常應該始終指出邊緣。只有兩種可能的解決方案,你找到了。其中一個是對的,另一個是錯的。
哪一項是正確取決於兩點: