→ 이 글은 「이득우의 게임 수학」을 바탕으로 작성했습니다.
■ 삼각함수
벡터의 합과 스칼라배를 통해 물체의 이동을 표현한다면, 삼각함수는 2차원 평면에서의 "회전"을 수학적으로 표현하는 도구이다.
직각삼각형에서 한 각을 $(\theta)$라 하면, 아래와 같이 세 변의 비를 정의할 수 있다. 즉, 사잇각 $(\theta)$에 따라 세 변은 일정한 "비율 관계"를 가진다.
- a = 밑변
- b = 높이
- c = 빗변
$$ \sin \theta = \frac{b}{c} \\ -------\\ \cos \theta = \frac{a}{c} \\ ------- \\ \tan \theta = \frac{b}{a} $$
[삼각함수 공식]
이러한 직각삼각형을 데카르트 좌표계에 배치하고, 각 $\theta$의 범위를 실수 전체로 확장하면 삼각함수가 된다.
→ 삼각함수 예시 : cos함수
삼각비가 각도만으로 결정된다는 사실을 한번 확인해보자.
$$\cos 60^\circ = \frac{3}{6} = \frac{1}{2} $$
사잇각$(\theta)$ = 60도, 빗변c = 6, 밑변 a = 3이라 한다면, cos 60일 때의 두 변의 비율은 위와 같이 계산된다.
사잇각$(\theta)$를 60도로 유지한 채, 빗변과 밑변의 길이를 3배로 늘리고 cos 함숫값을 계산해 보자.
$$\cos 60^\circ = \frac{9}{18} = \frac{1}{2} $$
이처럼 각$(\theta)$가 일정하다면 삼각형의 크기와 상관없이 삼각비는 항상 동일하다는 점을 알 수 있다.
→ 단위 원을 사용한 삼각함수
데카르트 좌표계에서 반지름이 1인 단위 원을 사용하면 삼각함수를 좀 더 쉽게 파악할 수 있다.
좌표계에서 반지름이 1인 단위원을 두고, 원점에서 단위원 위의 한 점까지의 선분을 빗변으로 하는 직각삼각형을 만들면 빗변의 길이는 1이 된다.
빗변의 길이가 1인 경우, 삼각함수 공식은 아래와 같이 정리된다.
$$ \sin \theta = \frac{b}{1} =b\ \ \ \ \cos \theta = \frac{a}{1} = a $$
빗변이 1이므로 높이는 $\sin \theta$, 밑변은 $\cos \theta$가 된다. 따라서, 빗변의 좌표는 $(\cos \theta, \sin \theta)$로 나타낼 수 있다.
- 또한 피타고라스 정리에 의해 아래와 같은 식이 성립된다.
$$ 1 = \sqrt{\cos^2\theta + \sin^2\theta} $$
- 빗변을 $r$로 일반화 하면 빗변의 좌표는 스칼라 곱셈으로 표현할 수 있다.
$$ r\cdot (\cos\theta, \sin\theta) = (r\cdot\cos\theta, r\cdot\sin\theta) \\ r^2 = r^2(\cos^2\theta, \sin^2\theta) $$
■ 삼각함수의 성질
좌표계에서의 각도는 x축에서 원의 궤적을 따라 반시계 방향으로 회전한 크기를 의미한다.
- 아직 회전하지 않은 상태의 빗변의 좌표는 $(1,0)$인데 이는 0도에 해당한다.
$$ \cos 0^{\circ} = 1 \ \ \ \sin 0^{\circ} = 0 $$
0도에서 90도까지 증가할수록, x의 값은 감소하고 y의 값은 증가한다. 90도를 넘어가면 x는 음수로 진입하고, y는 다시 0을 향해 줄어든다. 이를 그래프로 나타내면 아래와 같다.
1. sin함수의 성질
$sin(\theta)$ 함수는 정의역이 모든 실수이고, 치역은 [-1, 1]이며, 360도 주기로 반복된다.
또한, $sin(\theta)$ 함수는 원점을 기준으로 상하가 반전된 원점 대칭인 홀함수(기함수)의 성질을 지니며 아래의 공식이 항상 성립한다.
$$ \sin(-\theta) = -\sin(\theta) $$
2. cos함수의 성질
$cos(\theta)$ 함수도 동일하게 정의역이 모든 실수이고, 치역은 [-1, 1]이며, 360도 주기로 반복된다.
cos함수는 y축을 기준으로 좌우 대칭인 짝함수(우함수)의 성질을 지니며, 아래의 공식이 항상 성립한다.
$$ \cos(-\theta) = \cos(\theta) $$
3. tan함수의 성질
마지막으로 tan함수는 빗변과 무관하게 밑변과 높이의 관계만을 나타낸다. 여기서 분자와 분모를 각각 빗변 값으로 나누면 아래와 같이 sin과 cos으로 tan를 표현할 수 있다.
$$ \tan\theta = \frac{\frac{b}{c}}{\frac{a}{c}} = \frac{\sin\theta}{\cos\theta} $$
- 여기서 분모의 값이 0이 될 수 없으므로, cos값이 0인 90,-90,270,-270도 일 때는 값이 존재하지 않는다.
tan함수도 동일하게 원점을 기준으로 상하 반전된 홀함수(기함수)의 성질을 지닌다.
■ 각의 측정
일상생활에서 사용하는 360도는 수가 너무 크고 약수가 많기 때문에 호의 길이가 1인 부채꼴의 각을 기준으로 측정하는 호도법(Radian)을 사용한다.
중점을 기준으로 반지름이 1인 반원(초록색)을 그리고, 이 반원의 왼쪽 끝을 중점으로 이동시킨다.
이 후, 반원의 왼쪽 끝 점을 잡고 호를 펼치면, 반지름인 1보다 약 3.141592배 큰데 이것이 바로 무리수인 파이($\pi$)가 된다.
반대로 호의 길이가 1인 부채꼴의 각도는 약 57.2958... 도가 되는데 이를 1 rad(1 라디안)이라 한다.
그렇다면, 반지름이 1인 반원의 호의 길이는 $\pi$이므로, 아래와 같이 정리 가능하다.
$$ \pi(rad) = 180^{\circ} $$
위 식에서 양 변을 $\pi$로 나누면 1rad에 대응되는 각도를 구할 수 있고, (1rad = 57.3도) 양 변을 180으로 나누면 1도에 해당하는 라디안 각도를 구할 수 있다.
$$ 1(rad) = (\frac{180}{\pi})^\circ $$
$$ 1^\circ = \frac{\pi}{180}(rad) $$
■ 물체의 회전
물체의 이동시키거나 크기를 늘리는 행위는 각 축에 대해 독립적으로 작동하지만, 회전은 그렇지 않다.
- 물체를 회전시키기 위해 두 기저벡터$(e_1, e_2)$를 각 $\theta$만큼 회전시킨다고 생각해 보자.
기저 벡터를 각 $\theta$만큼 회전시킨 벡터를 $e_1', e_2'$이라 하면, 각 벡터의 좌표는 다음과 같이 계산된다.
$$ e_1' = (\cos\theta, \sin \theta) \\ e_2' = (-\sin\theta, \cos \theta) $$
- 어떤 벡터가 90도 회전하면 위치를 바꾸고 앞 부호를 반전한다.
실벡터 공간의 벡터$(1,1)$이 각 세타만큼 회전했으면, 이는 선형결합식을 통해 다음과 같이 표현할 수 있다.
$$ \vec v = 1\cdot e_1 + 1\cdot e_2 $$
- 여기서 각 세타만큼 회전한 벡터의 좌표는 다음과 같이 계산된다.
$$ \vec {v'} = 1\cdot(\cos\theta, \sin\theta) + 1\cdot(-\sin\theta, \cos\theta) \\ \vec {v'} = (\cos\theta - \sin\theta, \sin\theta + \cos\theta) $$
이를 일반화하여 임의의 벡터$\vec v = (x, y)$에서 각 세타만큼 회전한 벡터 $\vec u(x',y')$은 다음과 같이 계산할 수 있다.
$$ \vec v = (x,y) = x\cdot e_1 + y\cdot e_2 = x(1,0) + y(0,1) \\ \vec u = (x',y') = x\cdot e_1 + y \cdot e_2 = x(\cos\theta, \sin\theta) + y(-\sin\theta, \cos\theta) \\ ----------------------------- \\ x' = x \cos \theta - y \sin\theta \\ y' = x \sin \theta + y \cos \theta $$
■ 삼각함수의 역함수
삼각함수를 사용해 주어진 각에 대응하는 벡터를 얻었다면, 역함수를 통해 벡터에 대응되는 각도를 얻어올 수 있다.
1. sin 함수의 역함수
$$ y=f(x) = \sin(x) $$
위 수식을 보면 정의역의 여러 요소가 공역의 한 요소로 대응되기 때문에 전사함수의 성질을 지니고 있다.
- x가 0과 180일 때 1로 대응되고, -90과 270일 때 -1로 대응된다.
역함수가 존재하기 위해선 전단사함수의 성질을 지녀야 하므로 정의역의 범위를 $[-90^{\circ}, 90^{\circ}]$으로 제한하면 전단사함수의 성질을 지니게 된다.
$$ f^{-1}(x) = \sin^{-1}(x)= \arcsin(x) $$
이렇게 정의역의 범위를 줄여 sin함수를 전단사함수로 만들고, 이 함수의 역함수를 아크사인(arcsin) 함수라 한다.
2. cos 함수의 역함수
cos 함수도 마찬가지로 전단사함수가 되기 위한 조건은 정의역의 범위를 $[0^{\circ}, 180^{\circ}]$으로 제한하면 전단사함수의 성질을 지니게 된다.
3. tan 함수의 역함수
tan함수는 정의역이 존재하지 않는 구간이 있다. -90도와 90도(cos 함수의 값이 0)일 때 정의역이 존재하지 않으므로, 이 구간을 제외한 $(-90^{\circ}, 90^{\circ})$범위가 되어야 전단사함수가 된다.
arctan 함수는 벡터의 각도를 구할 때 사용된다. 벡터 $\vec v = (x, y)$가 있을 때, 그 벡터가 x축과 이루는 각도 세타는 삼각비 정의에 의해
$$ \tan \theta = \frac{y}{x} $$
이 되고, 여기서 $ \frac{y}{x}$가 바로 "직선의 기울기"가 된다.
$$ \vec v = (x,y) = \arctan(\frac{y}{x}) $$
그래서 이 기울기 값을 탄젠트 함수의 역함수인 아크 탄젠트의 입력값으로 넣으면 기울기에 해당하는 각도를 반환한다.
하지만 arctan함수는 정의역의 범위를 -90, 90으로 제한했기 때문에 1,4 사분면에 해당하는 정보만 획득할 수 있다.
- 이는 두 부호가 모두 음수인 3 사분면에서 $\frac{-y}{-x}$의 결과는 양수이기 때문.
그래서 두 좌표를 따로따로 전달하여 부호를 통해 어느 사분면에 위치해 있는지 확인하기 위한 함수가 존재한다.
$$ atan2(y,x) $$
- atan2 함수의 공역은$(-180^{\circ}, 180^{\circ})$이다.
■ 극좌표계
극좌표계는 회전을 위해 설계된 좌표계이다.
원점으로부터의 거리 $r$과 각 세타를 통해 좌표를 표시하며, 동심원의 형태로 평면의 모든 점을 표현한다.
- 데카르트 좌표계에서 극좌표계로의 변환은 다음과 같이 이루어진다.
$$ r = \sqrt{x^2 + y^2} \\ \theta = atan2(y,x) $$
- 극좌표계에서 데카르트좌표계로의 변환은 다음과 같이 이루어진다.
$$ x = r\cdot \cos\theta \\ y = r\cdot \sin\theta $$
'게임수학' 카테고리의 다른 글
[게임수학] 4. 행렬 (1) | 2025.09.05 |
---|---|
[게임수학] 2. 벡터(Vector) (2) | 2025.08.27 |
[게임수학] 1. 수(Number)와 함수(Function) (2) | 2025.08.26 |