C#의 MathF.Acos() 메서드는 float 형식의 값(코사인 값)을 인수로 전달받아, 해당 코사인 값을 갖는 각도를 라디안 단위로 반환하는 메서드입니다. 쉽게 말해 삼각함수에서 역코사인(arccosine)을 계산할 때 사용됩니다.
MathF.Acos() 메서드란?
MathF.Acos()는 .NET에서 float 형식에 최적화된 수학 메서드로, 입력값은 반드시 -1.0 이상 1.0 이하 범위 내에 있어야 합니다. 이 범위를 벗어나는 값이 입력되면 결과로 NaN(Not a Number)을 반환합니다.
구문(Syntax)
public static float Acos (float val);
매개변수: val — 역코사인을 구하고자 하는 float 형식의 실수입니다.
예제 1: 유효한 범위의 값 입력
다음 예제는 MathF.Acos() 메서드를 사용하여 0.1과 0.9의 역코사인 값을 구하는 코드입니다.
using System;
public class Demo {
public static void Main(){
float val1 = 0.1f;
float val2 = 0.9f;
Console.WriteLine("Angle (val1) = " + (MathF.Acos(val1)));
Console.WriteLine("Angle (val2) = " + (MathF.Acos(val2)));
}
}출력 결과
Angle (val1) = 1.470629 Angle (val2) = 0.4510269
실행 결과를 보면, 0.1의 역코사인 약 1.47라디안(약 84.26도), 0.9의 역코사인 약 0.451라디안(약 25.84도)이 반환된 것을 확인할 수 있습니다.
예제 2: 범위를 벗어난 값 입력 시 NaN 반환
역코사인 함수의 정의역은 -1부터 1까지입니다. 따라서 이 범위를 벗어난 값(예: 2.5, 5.0)을 입력하면 어떻게 되는지 살펴보겠습니다.
using System;
public class Demo {
public static void Main(){
float val1 = 2.5f;
float val2 = 5.0f;
Console.WriteLine("Angle (val1) = " + (MathF.Acos(val1)));
Console.WriteLine("Angle (val2) = " + (MathF.Acos(val2)));
}
}출력 결과
Angle (val1) = NaN Angle (val2) = NaN
입력값이 유효 범위(-1 ~ 1)를 초과했기 때문에 두 경우 모두 NaN이 출력됩니다. 이는 수학적으로 정의되지 않는 결과임을 나타냅니다.
정리
MathF.Acos() 메서드를 사용할 때는 다음 사항을 기억하세요.
- 입력값은 반드시 -1.0f ~ 1.0f 사이여야 합니다.
- 반환값은 라디안(radian) 단위이며, 도(degree) 단위가 필요하면 MathF.RadToDeg 또는 곱셈 변환(× 180 / π)을 활용할 수 있습니다.
- float 형식 전용 메서드이므로 double 형식에는 Math.Acos()를 사용하는 것이 적합합니다.