Java 在box2d中使用atan2获取碰撞角度时遇到问题

Java 在box2d中使用atan2获取碰撞角度时遇到问题,java,libgdx,box2d,atan2,Java,Libgdx,Box2d,Atan2,所以我使用box2d来处理libGDX中的物理和碰撞。我试图计算出碰撞的角度,这样我就可以在给定的角度应用某些效果 做了一些研究,我发现atan2应该是获得正确角度所需的数学函数,但它返回了奇怪的结果。对于应该在第二象限的触点,我得到的角度小于90。对于第三象限和第四象限中的接触,我得到接触角的正数。有人知道我在这里做错了什么吗 float other_x = contact.getWorldManifold().getPoints()[0].x * GameScreen.BOX_TO_WORL

所以我使用
box2d
来处理
libGDX
中的物理和碰撞。我试图计算出碰撞的角度,这样我就可以在给定的角度应用某些效果

做了一些研究,我发现atan2应该是获得正确角度所需的数学函数,但它返回了奇怪的结果。对于应该在第二象限的触点,我得到的角度小于90。对于第三象限和第四象限中的接触,我得到接触角的正数。有人知道我在这里做错了什么吗

float other_x = contact.getWorldManifold().getPoints()[0].x * GameScreen.BOX_TO_WORLD;
float other_y = contact.getWorldManifold().getPoints()[0].y * GameScreen.BOX_TO_WORLD;
float playerXpos = this.getX();
float playerYpos = this.getY();

float damageAngle = (float)Math.atan2((other_y - playerYpos), (other_x - playerXpos));

damageAngle = (float) (damageAngle * (180d/Math.PI));
是的,世界流形的索引中确实有坐标信息。我似乎不明白为什么
atan2
会返回这些值


编辑,所以我认为问题不在于atan2,而在于WorldManifold返回的联系信息。所以我想我的问题是,会有什么问题,联系信息会像这样关闭?

你对
atan2
的输入和输出示例感到困惑的是什么?实际上我认为问题在于输入。例如,我在看一个例子,玩家坐标为x=332,触点显示其x坐标为x=388,这是不可能的,因为触点发生在玩家中心的左上角..显示一组输入和输出,告诉我们你对每一组的期望。我已经解决了这个问题。联系人信息对于世界流形是正确的,但是getX()getY()信息不会返回玩家中心的信息,而是一个角的信息。对此进行调整可以解决问题。