Java atan2 函数是 Math 库 函数之一,它返回从 X 轴到指定点 (y, x) 的角度(以弧度为单位)。
Java atan2 函数语法
下面显示了 Java 编程语言中 Math.atan2 的基本语法。
static double atan2(double y, double x); //Return Type is Double // In order to use in program: Math.atan2(double y, double x);
- X:它可以是代表笛卡尔 X 坐标的 double 值或有效的数值表达式。
- Y:它可以是代表笛卡尔 Y 坐标的 double 值或有效的数值表达式。
Java Math.atan2 函数将返回介于 -π 和 π 之间的值,但特殊情况除外,我们将在下面详细说明。
- 如果任何参数是“非数字”(NaN),atan2 函数将返回 NaN。
- 如果第一个参数为正零,第二个参数为正 double 值,则结果为 正零。
- 当第一个参数为正 double 值,第二个参数为正无穷大时,结果为 正零。
- 如果第一个参数为负零,第二个参数为负 double 值,则 Java atan2 的结果为 负零。
- 如果第一个参数为负 double 值,第二个参数为正无穷大,则结果为 负零。
- 当第一个参数为正零,第二个参数为负 double 值。或者,第一个参数为正 double 值,第二个参数为负无穷大。结果将是 最接近 PI 值。
- 如果第一个参数为负零,第二个参数为负 double 值。或者,第一个参数为负 double 值,第二个参数为负无穷大,atan2 函数的结果将是 最接近 -PI 值。
- 如果第一个参数为正 double 值,第二个参数为正零或负零。或者,第一个参数为正无穷大,第二个参数为负 double 值;结果将是 最接近 PI/2 值。
- 当第一个参数为负 double 值,第二个参数为正零或负零。或者,如果第一个参数为负无穷大且第二个参数为有限值,结果将是 最接近 -PI/2 值。
- 如果第一个和第二个参数均为正无穷大,则 atan2 函数的结果将是 最接近 PI/4 值。
- 如果第一个参数为正无穷大,第二个参数为负无穷大,结果将是 最接近 3*(PI/4) 值。
- 当第一个参数为负无穷大,第二个参数为正无穷大时,结果将是 最接近 -PI/4 值。
- 如果第一个和第二个参数均为负无穷大,则结果将是 最接近 -3*(PI/4) 值。
Java atan2 函数示例
此程序中的 Math.atan2 函数返回从 X 轴到指定点 (y, x) 的角度(以弧度为单位)。在此 Java 程序中,我们使用正值和负值找到相同的值并显示输出。
package TrigonometricFunctions;
public class Atan2Method {
public static void main(String[] args) {
System.out.println("\nATAN2 result of Zero Value = " + Math.atan2(0, 10));
System.out.println("ATAN2 result of Zero Value = " + Math.atan2(10, 0));
System.out.println("\nATAN2 result of Zero Value = " + Math.atan2(0, -5));
System.out.println("ATAN2 result of Zero Value = " + Math.atan2(-10, 0));
System.out.println("\nATAN2 result of Positive Value = " + Math.atan2(4, 5));
System.out.println("ATAN2 result of Positive Value = " + Math.atan2(6, 10));
System.out.println("\nATAN2 result of Negative Value = " + Math.atan2(-2.50, -5.50));
System.out.println("ATAN2 result of Negative Value = " + Math.atan2(-6.25, -12.75));
System.out.println("\nATAN2 result of Both Postive & Negative Value = " + Math.atan2(3.50, -9.50));
System.out.println("ATAN2 result of Both Postive & Negative Value = " + Math.atan2(-4.25, 10.75));
double x = Math.toRadians(30), y = Math.toRadians(90);
System.out.println("\nATAN2 result of Radians = " + Math.atan2(x, y));
}
}

我们将 Math.atan2 函数与一个参数为零,另一个参数为正或负 double 值一起使用。以下 atan2 语句将查找相应值的角度(以弧度为单位)。
System.out.println("\nATAN2 result of Zero Value = " + Math.atan2(0, 10));
System.out.println("ATAN2 result of Zero Value = " + Math.atan2(10, 0));
System.out.println("\nATAN2 result of Zero Value = " + Math.atan2(0, -5));
System.out.println("ATAN2 result of Zero Value = " + Math.atan2(-10, 0));
接下来,我们直接在正 double 值上使用了 Math.atan2 函数。请参考 Java tan 和 Java atan 函数 Java 程序 以了解反正切函数。
System.out.println("\nATAN2 result of Positive Value = " + Math.atan2(4, 5));
System.out.println("ATAN2 result of Positive Value = " + Math.atan2(6, 10));
接下来,我们在负 double 值上使用了 Math.atan2 函数。
System.out.println("\nATAN2 result of Negative Value = " + Math.atan2(-2.50, -5.50));
System.out.println("ATAN2 result of Negative Value = " + Math.atan2(-6.25, -12.75));
在这里,我们直接在正数和负数 double 值上使用了 Math.atan2 函数。
System.out.println("\nATAN2 result of Both Postive & Negative Value = " + Math.atan2(3.50, -9.50));
System.out.println("ATAN2 result of Both Postive & Negative Value = " + Math.atan2(-4.25, 10.75));
接下来,我们声明了一个 Double 类型的变量并赋值。我们使用了 toRadians Math 函数 将 30、90 转换为等效的弧度。最后,我们使用 System.out.println 语句打印结果。
double x = Math.toRadians(30), y = Math.toRadians(90);
System.out.println("\nATAN2 result of Radians = " + Math.atan2(x, y));