Java - Math atan2(double, double) 方法



描述

Java Math atan2(double y,double x) 方法将直角坐标 (x, y) 转换为极坐标 (r, theta)。此方法通过计算 -pi 到 pi 范围内的 y/x 的反正切来计算相位 theta。特殊情况:

  • 如果任一参数为 NaN,则结果为 NaN。

  • 如果第一个参数为正零且第二个参数为正,或者第一个参数为正且有限且第二个参数为正无穷大,则结果为正零。

  • 如果第一个参数为负零且第二个参数为正,或者第一个参数为负且有限且第二个参数为正无穷大,则结果为负零。

  • 如果第一个参数为正零且第二个参数为负,或者第一个参数为正且有限且第二个参数为负无穷大,则结果为最接近 pi 的双精度值。

  • 如果第一个参数为负零且第二个参数为负,或者第一个参数为负且有限且第二个参数为负无穷大,则结果为最接近 -pi 的双精度值。

  • 如果第一个参数为正且第二个参数为正零或负零,或者第一个参数为正无穷大且第二个参数为有限值,则结果为最接近 pi/2 的双精度值。

  • 如果第一个参数为负且第二个参数为正零或负零,或者第一个参数为负无穷大且第二个参数为有限值,则结果为最接近 -pi/2 的双精度值。

  • 如果两个参数均为正无穷大,则结果为最接近 pi/4 的双精度值。

  • 如果第一个参数为正无穷大且第二个参数为负无穷大,则结果为最接近 3*pi/4 的双精度值。

  • 如果第一个参数为负无穷大且第二个参数为正无穷大,则结果为最接近 -pi/4 的双精度值。

  • 如果两个参数均为负无穷大,则结果为最接近 -3*pi/4 的双精度值。

结果必须在正确舍入结果的 2 ulp 以内。结果必须是半单调的。

声明

以下是java.lang.Math.atan2() 方法的声明

public static double atan2(double y, double x)

参数

  • y − 纵坐标

  • x − 横坐标

返回值

此方法返回对应于笛卡尔坐标系中点 (x, y) 的极坐标系中点 (r, theta)theta 分量。

异常

获取正值的反正切示例

以下示例显示了使用两个参数均为正值的 Math atan2() 方法。

package com.tutorialspoint;

public class MathDemo {

   public static void main(String[] args) {

      // get a variable x which is equal to PI/2
      double x = Math.PI / 2;

      // get a variable y which is equal to PI/3
      double y = Math.PI / 3;

      // convert x and y to degrees
      x = Math.toDegrees(x);
      y = Math.toDegrees(y);

      // get the polar coordinates
      System.out.println("Math.atan2(" + x + "," + y + ")=" + Math.atan2(x, y));
   }
}

输出

让我们编译并运行上述程序,这将产生以下结果:

Math.atan2(90.0,59.99999999999999)=0.9827937232473292

获取负值的反正切示例

以下示例显示了使用两个参数均为负值的 Math atan2() 方法。

package com.tutorialspoint;

public class MathDemo {

   public static void main(String[] args) {

      // get a variable x which is equal to -PI/2
      double x = -(Math.PI / 2);

      // get a variable y which is equal to -PI/3
      double y = -(Math.PI / 3);

      // convert x and y to degrees
      x = Math.toDegrees(x);
      y = Math.toDegrees(y);

      // get the polar coordinates
      System.out.println("Math.atan2(" + x + "," + y + ")=" + Math.atan2(x, y));
   }
}

输出

让我们编译并运行上述程序,这将产生以下结果:

Math.atan2(-90.0,-59.99999999999999)=-2.158798930342464

获取第一个参数为正,第二个参数为负的反正切示例

以下示例显示了使用第一个参数为正,第二个参数为负值的 Math atan2() 方法。

package com.tutorialspoint;

public class MathDemo {

   public static void main(String[] args) {

      // get a variable x which is equal to PI/2
      double x = Math.PI / 2;

      // get a variable y which is equal to -PI/3
      double y = -(Math.PI / 3);

      // convert x and y to degrees
      x = Math.toDegrees(x);
      y = Math.toDegrees(y);

      // get the polar coordinates
      System.out.println("Math.atan2(" + x + "," + y + ")=" + Math.atan2(x, y));
   }
}

输出

让我们编译并运行上述程序,这将产生以下结果:

Math.atan2(90.0,-59.99999999999999)=2.158798930342464
java_lang_math.htm
广告