閱讀英文

共用方式為


Math.Atan2(Double, Double) 方法

定義

傳回正切函數是兩個指定數字之商數的角。

C#
public static double Atan2(double y, double x);

參數

y
Double

某個點的 Y 座標。

x
Double

某個點的 X 座標。

傳回

以弧度為單位的角度 θ,讓 tan (θ) = y / x ,其中 (xy) 是笛卡兒平面中的點。 注意下列各項:

  • 如果 (x, y) 在第 1 象限,則 0 < θ < π/2。

  • 針對 (xy) 象限 2,π/2 < ≤ π。

  • 針對 (xy 在象限 3、-π ≤ θ < -π/2 中) 。

  • 如果 (x, y) 在第 4 象限,則 -π/2 < θ < 0。

如果是位在象限界限上的點,則傳回值如下:

  • 如果 y 是 0,且 x 不是負值,則 θ = 0。

  • 如果 y 是 0,且 x 是負值,則 θ = π。

  • 如果 y 是正值,且 x 是 0,則 θ = π/2。

  • 如果 y 是負值,而 x 是 0,則 θ = -π/2。

  • 如果 y 是 0 且 x 是 0,則 θ = 0。

如果 xyNaN,或者 xyPositiveInfinityNegativeInfinity,這個方法會傳回 NaN

範例

下列範例示範如何計算角度和向量的反正切值。 產生的值會顯示在主控台中。

C#
// This example demonstrates Math.Atan()
//                           Math.Atan2()
//                           Math.Tan()
using System;

class Sample
{
    public static void Main()
    {
    double x = 1.0;
    double y = 2.0;
    double angle;
    double radians;
    double result;

// Calculate the tangent of 30 degrees.
    angle = 30;
    radians = angle * (Math.PI/180);
    result = Math.Tan(radians);
    Console.WriteLine("The tangent of 30 degrees is {0}.", result);

// Calculate the arctangent of the previous tangent.
    radians = Math.Atan(result);
    angle = radians * (180/Math.PI);
    Console.WriteLine("The previous tangent is equivalent to {0} degrees.", angle);

// Calculate the arctangent of an angle.
    String line1 = "{0}The arctangent of the angle formed by the x-axis and ";
    String line2 = "a vector to point ({0},{1}) is {2}, ";
    String line3 = "which is equivalent to {0} degrees.";

    radians = Math.Atan2(y, x);
    angle = radians * (180/Math.PI);

    Console.WriteLine(line1, Environment.NewLine);
    Console.WriteLine(line2, x, y, radians);
    Console.WriteLine(line3, angle);
    }
}
/*
This example produces the following results:

The tangent of 30 degrees is 0.577350269189626.
The previous tangent is equivalent to 30 degrees.

The arctangent of the angle formed by the x-axis and
a vector to point (1,2) is 1.10714871779409,
which is equivalent to 63.434948822922 degrees.
*/

備註

傳回值是 X 軸所形成之笛卡兒平面的角度,以及從原點開始的向量、 (0,0) ,並在點終止, (x,y) 。

這個方法會呼叫基礎 C 執行時間,而且不同的作業系統或架構之間,確切的結果或有效輸入範圍可能會不同。

適用於

產品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0