2010-10-08 34 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

正常应该始终指出边缘。只有两种可能的解决方案,你找到了。其中一个是对的,另一个是错的。

哪一项是正确取决于两点:

  • 无论您的边缘逆时针或顺时针旋转。
  • 您的协调系统。