Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# Math.Atan2() 메서드 완벽 정리: 두 좌표로 각도 구하기

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축의 양의 방향 위에 위치한다는 것을 알 수 있습니다.