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
正常应该始终指出边缘。只有两种可能的解决方案,你找到了。其中一个是对的,另一个是错的。
哪一项是正确取决于两点: