2

我的 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。我该如何解决这个问题?

4

2 回答 2

5

不要打电话Math.abs。负数和正数会给出不同的结果,因此您要保留 和 的deltaX符号deltaY

于 2013-02-13T01:57:10.383 回答
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);
}
于 2013-02-13T02:05:19.760 回答