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
, 여기서 (, y
)는 카티전 평면의 점과 같이 라디안으로 측정된 각도(x
μ)입니다. 다음 사항이 적용됩니다.
(
x
,y
)가 1사분면 안에 있으면 1, 0 < θ < π/2입니다.사분면 2의 (
x
,y
)의 경우 π/2 < 을 ≤ π.사분면 3의 (
x
,y
)의 경우 -π ≤ 을(를 < ) -π/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입니다.
x
또는 y
가 NaN이거나, x
및 y
가 PositiveInfinity 또는 NegativeInfinity이면 이 메서드는 NaN을 반환합니다.
예제
다음 예제에서는 각도 및 벡터의 아크탄젠트를 계산하는 방법을 보여 줍니다. 결과 값이 콘솔에 표시됩니다.
// This example demonstrates Math.Atan()
// Math.Atan2()
// Math.Tan()
using namespace System;
int 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()
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)에서 시작하여 지점에서 종료되는 벡터(x,y)입니다.
이 메서드는 기본 C 런타임을 호출하며 정확한 결과 또는 유효한 입력 범위는 서로 다른 운영 체제 또는 아키텍처 간에 다를 수 있습니다.
적용 대상
.NET