如何使用SAT查找哪一侧发生碰撞

时间:2019-01-27 15:55:24

标签: collision-detection separating-axis-theorem

我正在使用“分离轴定理”来检查两个多边形(玩家和对象)是否相交。我想让玩家从物体上反弹,但是要做到这一点,我需要玩家与之碰撞的一面(我将从中计算出角度)。

如何从SAT函数中获取此信息?

1 个答案:

答案 0 :(得分:0)

计算所有轴时,实际上,您会获得所有法线,因此会得到侧面。

您必须将所有轴旋转90°,然后保存一对顶点才能使轴/法线正常。

因此,如果最小重叠位于轴[x]上,则该侧面具有法线向量Rotate(轴[x],90)。

并且必须在最小重叠轴上的对象中心之间投影矢量,如果结果小于0,则必须采用相反的法线和顶点关联。

注意:在计算轴时,请从左到右,否则必须使用-90°