如何从2点找到一个角度?

时间:2013-02-13 01:50:36

标签: java math

我的Java程序中有这个方法:

public static float findAngle(float x1, float y1, float x2, float y2) {
    float deltaX = Math.abs(x1 - x2);
    float deltaY = Math.abs(y1 - y2);
    return (float)(Math.atan2(deltaY, deltaX) * 180 / Math.PI);
}

我是通过谷歌搜索这个问题得到的。然而,当它付诸实践时,它会分裂,所以我只得到1-180,而在180之后它又回到1.如何解决这个问题?

2 个答案:

答案 0 :(得分:5)

请勿致电Math.abs。否定数字和正数会产生不同的结果,因此您希望保留deltaXdeltaY的符号。

答案 1 :(得分:1)

public static float findAngle(float x1, float y1, float x2, float y2) {
    float deltaX = x1 - x2;
    float deltaY = y1 - y2;
    return (float)(Math.atan2(deltaY, deltaX) * 180 / Math.PI);
}