C#의 MathF.Asin() 메서드는 지정된 float 값의 사인(sine)에 해당하는 각도, 즉 역사인(아크사인) 값을 반환하는 정적 메서드입니다. 삼각함수 연산이 필요한 그래픽 처리, 게임 물리 엔진, 과학·공학 계산 등 다양한 분야에서 활용됩니다.
구문
MathF.Asin() 메서드의 기본 구문은 다음과 같습니다.
public static float Asin (float val);
매개변수 val에는 아크사인을 구하고자 하는 float 형식의 값이 전달됩니다. 이때 유효한 입력 범위는 -1.0f부터 1.0f까지이며, 이 범위를 벗어난 값이 입력되면 메서드는 NaN(Not a Number)을 반환합니다. 또한 반환되는 각도의 단위는 도(degree)가 아닌 라디안(radian)이라는 점에 유의해야 합니다.
예제 1: 유효한 값과 범위를 벗어난 값 비교
다음은 MathF.Asin() 메서드를 실제로 사용하는 첫 번째 예제입니다.
using System;
public class Demo {
public static void Main(){
float val1 = 0.1f;
float val2 = 8.9f;
Console.WriteLine("Angle (val1) = "+(MathF.Asin(val1)));
Console.WriteLine("Angle (val2) = "+(MathF.Asin(val2)));
}
}실행 결과
Angle (val1) = 0.1001674 Angle (val2) = NaN
0.1f는 유효 범위(-1~1) 안에 있으므로 약 0.1001674라디안의 각도가 정상적으로 반환됩니다. 반면 8.9f는 사인 함수의 치역을 벗어나기 때문에 NaN이 반환된 것을 확인할 수 있습니다.
예제 2: 범위를 벗어난 여러 값 처리
이번에는 두 값이 모두 유효 범위를 벗어나는 경우를 살펴보겠습니다.
using System;
public class Demo {
public static void Main(){
float val1 = 1.2f;
float val2 = 45.5f;
Console.WriteLine("Angle (val1) = "+(MathF.Asin(val1)));
Console.WriteLine("Angle (val2) = "+(MathF.Asin(val2)));
}
}실행 결과
Angle (val1) = NaN Angle (val2) = NaN
1.2f와 45.5f 모두 사인 함수가 가질 수 있는 값의 범위(-1~1)를 벗어나므로, 두 경우 모두 NaN이 반환됩니다.
정리
MathF.Asin() 메서드를 사용할 때는 다음 세 가지를 기억하면 좋습니다.
- 입력값은 반드시 -1.0f 이상 1.0f 이하여야 하며, 범위를 벗어나면 NaN이 반환됩니다.
- 반환값의 단위는 라디안이므로, 도(degree) 단위가 필요하다면
결과 × 180 / MathF.PI로 직접 변환해야 합니다. - MathF 클래스는 float 형식에 최적화되어 있어, double 기반의 Math.Asin()보다 불필요한 형식 변환이 없어 성능 면에서 유리할 수 있습니다.