SAT算法要求您找到每个形状的每条边的法线(基本上是垂直于边矢量的矢量)以用作分离轴。这可以非常简单地完成......
(x,y)=> (-y,X)
OR
(x,y)=> (Y,-X)
哪个应该用在SAT算法中?这基本上是应该使用左手正常还是右手法线的问题。它会有所作为吗?应该只使用左手还是右手?这会因不同的情况而改变吗?
答案 0 :(得分:0)
只要您对每个面使用相同的约定都没关系,因为法线用于计算投影并比较它们:
Projection p1 = shape1.project(axis);
Projection p2 = shape2.project(axis);
// do the projections overlap?
if (!p1.overlap(p2)) {
(!p1.overlap(p2))
的结果与两个公式相同。
HTH
答案 1 :(得分:0)
法线应始终从边缘指出。您可以找到两种可能的解决方案。其中一个是对的,另一个是错的。
哪一个是正确的取决于两件事: