Java atan2() 方法
atan2() 方法用于将矩形坐标 (x, y) 转换成极坐标 (r, theta),返回所得角 theta。该方法通过计算 y/x 的反正切值来计算相角 theta,范围为从 -pi 到 pi。
语法
double atan2(double y, double x)
参数
y -- 纵坐标。
x -- 横坐标。
返回值
与笛卡儿坐标中点 (x, y) 对应的极坐标中点 (r, theta) 的 theta 组件。
实例
public class Test{
public static void main(String args[]){
double x = 45.0;
double y = 30.0;
System.out.println( Math.atan2(x, y) );
}
}
编译以上程序,输出结果为:
0.982793723247329
关于 Java 的 Math.atan2(double x,double y) 的笔记:
Math.atan2(double x,double y) 方法返回选 (x,y) 坐标的方向,以弧度记。
众所周知,Math.cos(double a) , Math.sin(double a) 返回a的余弦/正弦值,那么,这个 a 和 atan2 返回的 angle 有什么区别?
做程序测试:
对应输出:
所以,这个60度是点到原点连线与y轴的夹角。
再看:
对应输出结果:
与 angle(a)互余。
对应输出结果:
可见,它是顺时针方向,0弧度在正y轴;而正规三角函数是逆时针方向,0弧度在正x轴。