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 に答える