삼각함수란?

생략.

일단 본격적으로 들어가기 앞서 피타고라스 부터 정리 해보겠습니다.

피타고라스는 보통 몬스터와 플레이어간의 거리 길이를 구할때 사용하게 됩니다.

위 그림 처럼 2차 좌표에서 봤을때 두 물체간의 거리를 구할 수 있었습니다. 

 

 

이제 피타고라스를 알았다면 

Cos
Sin

 Tan  
이 세개의 함수를 알아 보겠습니다.

보통 고등학교때 외울때 아래와 같이 외우곤 했던 기억이 있네요....




Cos(A)  : b/a
Sin(A)   : a/c

Tan(A)  :  c/b (= SinA/CosA)

이런 성질을 갖고 있는데 이 나온 값들은 어떤것을 뜻할까요??
바로 빗변과의 비율 이라고 생각하면 됩니다. 

 

직각 삼각형을 표현할때 보통 단위 원을 이용해서 많이 볼 수 있는데요

단위 원이란 반지름이 1 인 값을 의미합니다. 말 그대로 단위 즉 비율을 도출 할 수 있습니다. 


수학에서는 보통 각도가 아닌 라디안으로 많이 표현을 하게 됩니다. 

 

 

흠.. 왜 각도를 많이 안쓸까요??..
0~360도 라는 값이 ... 그냥 수학적으로 계산해서 나온게 아니라고는 하네요,,,
그냥 똑똑하신 조상들이 딱 수치를 정한거 같아요

(제 생각에서는 2,3,4,5,6 로 다 나눠 떨어져서 하지 않을까라는 생각이 드네요.)

 

π란? 

원의 지름과 둘례의 비율이라고 할 수 있습니다.
예를 들어 지름이 1cm 라면 둘례는 3.14cm 가 되겠죠?

 

그럼 라디안이란?

위 그림 처럼 호의 길이가 1인 각도를 의미합니다.
1라디안은 대략 57도 입니다.


각도 = 라디안
360 =  2π
180 =  π

90   =  π/2

57   =  1

45   =  π/4

30   =  π/6

가 됩니다.(기억!!)

 

그림을 보면 단위원이기 때문에 반지름은 1이라고 가정합니다. 즉 빛변이 1입니다. 

 원 둘례 위에 존재하는 좌표를 찍고 삼각형을 그린다면

 

x값 : 
Cos(A) = 밑/빗(=1)  =>
밑변 = CosA 
  

y값 
Sin(A) = 높/빗(=1) =>

높이 = SinA 

 

그럼 이 과정에서 굉장히 중요한 규칙이 볼 수 있는데
피타고라스로 인해

Sin(A)^2 + Cos(A)^2 = 1

를 도출 할 수 있습니다. 



위 그림에서 삼각형을 아래로 대칭으로 그려보도록 하겠습니다.

 

cosA 의 값은 변화지 않고 그대로가 됩니다. 

Cos(A) = Cos(-A)

그 반대로 SinA 는 부호가 바뀌게 됩니다.

Sin(A) = -Sin(-A) 

가 되는 셈이죠 . 

 

Cos, Sin, Tan를 그래프로 한번 표현해보겠습니다

각도 0 기준으로

Sin(A)는 0이 되고 

Cos(A)는 1이 됩니다. 

한번 원 그림을 보고 확인해보져 

그럼 π/2 일때 한번 봐볼까요?

 


Tan는 빗변과의 각도 90도로 인 선을 그어 x좌표에 만나는 지점까지의 비율이라고 할 수 있는데
다른 얘들(?)과 다르게 무한대로 가는데 그 이유는

A가 π/2일때
아까 말한 Tan = Sin(A)/Cos(A)

Tan = Sin(A)/0

0으로 나눠지게 되는데 이는 성립하지 않게 됩니다. 

즉 Tan의 그래프는 π/2, -π/2에 가까워 질 수록 무한대로 이어지게 되는거죠. 

 

 

역함수
역함수는 비율값은 알고 있지만 라디안 값을 모르고 있는 상황을 이야기 합니다.
위에 설명한 것들은 모두 라디안을 통해 비율을 구했다면 이 역함는 반대로 하는 하게 됩니다.  

 

역함수는 표현할때 보통 arc를 붙여서 
arccos[]  = A

arcsin[]  = A

arctan[]  = A

 

 

더 나아가 그래픽스에서 회전 행렬을 하기 위해 

코사인 덧셈 정리도 알아야 합니다. 

 

 

위에 덧셈 정리를 한번 증명해보겠습니다. 

이 A와 B 두 점 사이의 거리를 구하기 위해 
두가지 방법을 써서 증명을 해보겠습니다. 

삼각함수는 여기까지~

'개발 공부 > DirectX12 및 게임수학' 카테고리의 다른 글

[게임수학] 변환행렬  (0) 2022.10.10
[게임수학] 행렬  (0) 2022.10.10
[게임수학] Vector 외적  (0) 2022.03.13
[게임수학] Vector 내적  (0) 2022.03.13
[게임수학] 기하 벡터 기초  (0) 2022.02.22

+ Recent posts