atan2与2点之间的角度

vuv*_*uvu 3 java atan2

我正在读这篇关于获得2分之间角度的帖子,并且在想.我认为atan2定义为atan2(y,x),这里它是atan2(deltaX,deltaY),为什么x现在是第一个?

public float getAngle(Point target) {
    float angle = (float) Math.toDegrees(Math.atan2(target.x - x, target.y - y));

    if (angle < 0) {
        angle += 360;
    }

    return angle;
}
Run Code Online (Sandbox Code Playgroud)

Ruc*_*era 13

Math.java定义为

 public static double atan2(double y, double x) {
    return StrictMath.atan2(y, x); // default impl. delegates to StrictMath
  }
Run Code Online (Sandbox Code Playgroud)

这将返回相对于X轴的逆时针角度.

如果你互换这两个,你将获得相对于X轴的时钟角度.

在笛卡尔坐标系中,我们考虑相对于X轴的逆时针角度.这就是Math.java如上所述使用它的原因.