2010-10-08 67 views
1

SAT算法要求您找到每個形狀(基本上是垂直於邊緣矢量的矢量)的每個邊緣的法線以用作分離軸。這可以很簡單地完成...確定SAT分離軸定理中的邊緣法線

(X,Y)=>(-y,X)

OR

(X,Y)=>(Y,-X)

SAT算法應該使用哪一個?這基本上是一個問題,應該使用左手正常還是右手正常。它會有所作爲嗎?應該只使用左手還是右手?這種情況應該改變嗎?

http://www.codezealot.org/archives/55#sat-axes

回答

0

它只要不事你使用相同的約定每一張臉,因爲法線被用來計算預測,並比較它們:

Projection p1 = shape1.project(axis); 
    Projection p2 = shape2.project(axis); 
    // do the projections overlap? 
    if (!p1.overlap(p2)) { 

的結果(!p1.overlap(p2))將與這兩個公式相同。

HTH

0

正常應該始終指出邊緣。只有兩種可能的解決方案,你找到了。其中一個是對的,另一個是錯的。

哪一項是正確取決於兩點:

  • 無論您的邊緣逆時針或順時針旋轉。
  • 您的協調系統。