C#의 Math.Atan2() 메서드는 지정된 두 숫자의 몫(y/x)에 대한 탄젠트 값이 되는 각도를 반환합니다. 일반적인 Math.Atan() 메서드와 달리 Atan2()는 x 좌표와 y 좌표를 개별적으로 받기 때문에 사분면 정보가 유지되며, −π ~ π 범위에서 정확한 각도를 계산할 수 있습니다.
구문
Math.Atan2() 메서드의 기본 구문은 다음과 같습니다.
public static double Atan2 (double val1, double val2);
여기서 val1은 y 좌표를, val2는 x 좌표를 나타냅니다. 반환값은 라디안(radian) 단위의 각도이며, 필요에 따라 도(degree) 단위로 변환할 수 있습니다.
예제 1: 라디안을 도(degree)로 변환하기
다음 예제는 Math.Atan2() 메서드로 각도를 구한 뒤, 라디안 값을 도 단위로 변환하여 출력합니다.
using System;
public class Demo {
public static void Main(){
double val1 = 3.0;
double val2 = 1.0;
double angle, radians;
radians = Math.Atan2(val1, val2);
angle = radians * (180/Math.PI);
Console.WriteLine("Result = "+angle);
}
}출력 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Result = 71.565051177078
y 좌표가 3.0이고 x 좌표가 1.0일 때, 원점에서 해당 점까지의 각도는 약 71.57도로 계산됩니다.
예제 2: x축 위의 점
이번에는 y 좌표가 0인 경우를 살펴보겠습니다.
using System;
public class Demo {
public static void Main(){
double val1 = 0;
double val2 = 5;
double angle, radians;
radians = Math.Atan2(val1, val2);
angle = radians * (180/Math.PI);
Console.WriteLine("Result = "+angle);
}
}출력 결과
실행 결과는 다음과 같습니다.
Result = 0
y 좌표가 0이고 x 좌표가 양수(5)이므로 각도는 0도가 됩니다. 즉, 해당 점은 x축의 양의 방향 위에 위치한다는 것을 알 수 있습니다.