Math.Atan2(Double, Double) 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回其正切值是两个指定数字的商的角度。
public:
static double Atan2(double y, double x);
public static double Atan2(double y, double x);
static member Atan2 : double * double -> double
Public Shared Function Atan2 (y As Double, x As Double) As Double
参数
- y
- Double
点的 y 坐标。
- x
- Double
点的 x 坐标。
返回
以弧度为单位测量的角度,以便 tan(^) = y / x,其中(x, y) 是笛卡尔平面中的一个点。 请注意以下事项:
对于 (
x,y) 在象限 1, 0 < π $ < /2.对于 (
x,y) 在象限 2, π/2 < ≤ π.x(,y) 在象限 3, -π ≤ л < -π/2.对于 (
x,y) 在象限 4, -π/2 < 0 < .
对于象限边界上的点,返回值如下:
如果 y 为 0 且 x 不为负值,则 ≤ = 0。
如果 y 为 0 且 x 为负值,则 ー = π。
如果 y 为正,x 为 0,л = π/2。
如果 y 为负数,则 x 为 0,/2= -π/2。
如果 y 为 0 且 x 为 0,则 ≤ = 0。
如果x或y为NaN或xyPositiveInfinityNegativeInfinity,则返回该方法。NaN
示例
下面的示例演示如何计算角度和向量的反正切值。 生成的值显示在控制台中。
// 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.
*/
// This example demonstrates Math.Atan()
// Math.Atan2()
// Math.Tan()
// Functions 'atan', 'atan2', and 'tan' may be used instead.
open System
[<EntryPoint>]
let main _ =
let x = 1.
let y = 2.
// Calculate the tangent of 30 degrees.
let angle = 30.
let radians = angle * (Math.PI / 180.)
let result = Math.Tan radians
printfn $"The tangent of 30 degrees is {result}."
// Calculate the arctangent of the previous tangent.
let radians = Math.Atan result
let angle = radians * (180. / Math.PI)
printfn $"The previous tangent is equivalent to {angle} degrees."
// Calculate the arctangent of an angle.
let radians = Math.Atan2(y, x)
let angle = radians * (180. / Math.PI)
printfn
$"""The arctangent of the angle formed by the x-axis and
a vector to point ({x},{y}) is {radians},
which is equivalent to {angle} degrees."""
0
//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.
' This example demonstrates Math.Atan()
' Math.Atan2()
' Math.Tan()
Class Sample
Public Shared Sub Main()
Dim x As Double = 1.0
Dim y As Double = 2.0
Dim angle As Double
Dim radians As Double
Dim result As Double
' 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.
Dim line1 As [String] = "{0}The arctangent of the angle formed by the x-axis and "
Dim line2 As [String] = "a vector to point ({0},{1}) is {2}, "
Dim line3 As [String] = "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)
End Sub
End Class
'
'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,0)开始的矢量,并在点(x,y)处终止。
此方法调用基础 C 运行时,确切的结果或有效输入范围在不同操作系统或体系结构之间可能有所不同。