본문 바로가기

게임수학

삼각함수

삼각형

가장 단순한 도형인 삼각형은 세 개의 정점(Vertex) 이루어지고, 정점으로 세 개의 변(edge)가 정해진다.
삼각형의 세 변 중 두 개의 변이 이루는 각을 내각(interior angle)이라고 한다. 이 세 개의 내각의 합은 항상 180도이다.
(여담: 비유클리드 기하학 학문에서는 180도가 아니라고 말하지만, 일반적인 게임을 만들 때 이 개념이 필요없다.)
삼각형은 평면 위에서 존재하지만, 정점인 4개인 사각형을 종이접기하듯이 삼각형을 만들면 이는 3차원 공간에서 밖에 표현할 수 없음.

 

직각삼각형

직각삼각형의 개념은 세 개의 정점 부분의 내각 중 하나가 직각(90도)을 이루는 경우 직각삼각형이라고 한다.
직각 맞은편의 비스듬한 변을 빗변이라고 한다. 또한, 바닥에 있는 것을 밑변, 남은 변을 높이라고 한다.
직각삼각형에서 세 변의 길이와 빗변과 밑변이 이루는 내각의 각도 θ (세타, theta) 사이에 존재하는 관계를 이용해서
예를 들어 빗변과 θ가 주어졌을 때 다른 두 변의 길이를 알아내는게 삼각함수의 가장 기본적인 쓰임새.


피타고라스의 정리

피타고라스의 정리이란 높이를 a, 밑변을 b, 빗변을 c로 했을 때, 다음 식이 성립된다.
c^2 = a^2 + b^2

사인, 코사인, 탄젠트

직각삼각형에서 변을 두 개 선택한 경우 두 변의 길이의 비율(삼각비)은 θ의 각도에 따라 변화한다. 따라서 변화하는 매개변수 θ를 입력받아, 출력되는 결괏값이 변화하는 함수형식으로 각 변수 사이의 관계를 나타낼 수 있다.

sinθ = 높이 / 빗변

cosθ = 밑변 / 빗변
tanθ = 높이 / 밑변

 

내각 θ를 매개변수로 받아 각 변끼리의 비율을 반환하는 사인, 코사인, 탄젠트의 대응해 그 역함수로서 각 변끼리의 비율을 매개변수로 하여 내각 θ의 각도를 구하는 일련의 함수도 있다.
아크사인(arcsine), 아크코사인(arccosine), 아크탄젠트(arctangent)를 사용하면 각각 사인, 코사인, 탄젠트 값으로부터 대응하는 각도 θ를 산출할 수 있다.
θ = arcsin(sinθ)

θ = arccos(cosθ)

θ = arctan(tanθ)
삼각형의 세 변 중 두 변의 길이를 알 때 이 역함수들을 적용하면 내각 θ의 각도를 구할 수 있다.

삼각함수의 주기성

단위원

삼각함수는 변화하는 매개변수 θ에 의존하는 함수로 설명했는데, 지금까지는 직각삼각형을 염두에 두고, 삼각함수의 
개념을 살펴봤지만, 이 경우 θ는 삼각형의 내각의 합은 180도이기 때문에 θ가 0도보다 크고 90도보다 작은 각도로
한정되는 문제점이 있다. 
따라서, 직각삼각형뿐만 아니라, 직각삼각형을 포함하는 원을 통해 삼각함수를 표현하는 방법이 있다.

위 그림은 반지름의 길이가 1인 원, 즉 단위원이다. 이 단위원의 중심은 x축과 y축이 있는 좌표축의 원점(0, 0)에 존재한다.
따라, θ의 각도만 변동한 경우에도 빗변의 길이는 항상 1이므로, 사인과 코사인의 정의를 적용하면 B의 xy 좌표축에서의
좌표는 항상 (cosθ, sinθ)가 된다.
삼각형 ABC에 피타고라스의 정리를 적용하면 다음과 같은 관계를 도출 할 수 있다.

(sinθ)^2 + (cosθ)^2 = 1
이 식은 피타고라스 삼각항등식으로 불리는 일련의 관계를 도출하기 위한 기초가 되는 공식.

 코사인 법칙

사인, 코사인, 탄젠트 그리고 피타고라스 삼각항등식의 기초 공식을 사용해 직각삼각형 뿐만 아니라, 일반 삼각형에도
성립되는 성질이 있다.

위 사진처럼 세 변의 길이가 각각 a, b, c이고 a와 b의 내각이 θ인 삼각형이라고 할 때 A를 H를 향해 수직으로 내린 직선과 BC의 교점이다. 여기서 직각삼각형의 ABH는 피타고라스의 정리를 통해 다음과 같이 나타낼 수 있다.

c^2 = (a - bcosθ)^2 + (bsinθ)^2

 = a^2 -2ab(cosθ) + b^2(cosθ)^2 + b^2(sinθ)^2
 = a^2 + b^2((cosθ)^2 + (sinθ)^2) -2ab(cosθ)

 = a^2 + b^2 - 2ab(cosθ)
이 3행에서 앞에서 설명한 (sinθ)^2 + (cosθ)^2 = 1이라는 식을 적용했다. 이렇게 구한 식을 코사인 법칙이라고 한다.

c^2 = a^2 + b^2 - 2ab(cosθ)
이러한 코사인 법칙은 직각삼각형 뿐만 아니라 일반 삼각형에도 성립한다. 피타고라스의  정리는 코사인법칙의 특수한
케이스다.(θ가 직각인 경우 cosθ  = 0)

주기성

단위원을 사용하면 원점을 축으로 원의 반지름을 회전시킴으로써 90도보다 큰 각도에서 삼각함수의 수치를
표현할 수 있다.

90도보다 큰 각도 θ의 점 P의 x 좌표는 cosθ 값을 나타내고, y 좌표는 sinθ 값을 나타낸다.
x 좌표가 마이너스 위치에 있으므로 θ가 90도보다 크고 279도보다 작을 때는 코사인 값이 음수가 된다는 사실도
알 수 있다.

사인, 코사인, 탄젠트가 xy 평면의 각 사분면에서 양수와 음수 중 어느 쪽 부호를 갖는지 정리 한 것이다.

이렇게 하면, 4사분면에서 360도까지의 각도 θ인 삼각함수를 다룰 수 있다는 것을 알 수 있지만, 360도보다 
큰 각도일 때는 어떻게 되는지 명확하지 않다.
다만 θ가 360도 이상일 때는 다시 θ도로 돌아온듯 움직이고, 이후로는 그 동작을 360도마다 계속 반복할 뿐이다.
다시 말해 사인, 코사인 값은 같은 변화 형태를 쭉 반복한다. 이를 삼각함수의 주기성이라고 한다.

라디안

위 사진은 실제 삼각함수의 값을 표시한 것이다. 여기서 90도에 대응하는 π / 2, 180도에 대응하는 

π라는 표기가 있다. 이 표기는 라디안으로 불리는 형식으로 수학과 프로그래밍 분야에서 각도를 
나타내는 데 쓰인다.


(1, 0)에서부터 단위원의 원호에서 길이 1만큼 이동한 점을 P라고 한다. 즉 반지름과 호의 길이가 같아진 상태의 P다. 이때 θ의 각도를 1라디안이라고 하는 것이 라디안 형식의 기본 개념이다. 
그럼 왜 90도가 라디안으로 하면 π / 2로 표현되고, 180도가 π로 표현되는 것일까? π가 원주율로 불리며, 원주의 길이를 계산할 때 상수로 이용된다.
원주의 길이를 C, 반지름의 길이를 r이라고 했을 때 원주의 길이 C를 구하는 공식은 다음과 같다.

C = 2πr

단위원의 θ가 360도일 때 점 P는 원래 점 D(1, 0)로부터 원주 위를 일주하고 원주의 길이 C만큼 이동한 위치에 있게 됨.
원주의 길이를 구하는 공식에서 단위원은 r = 1이므로 c = 2π다.

P가 원주 위를 이동한 원호의 길이가 1일 때, θ를 라디안으로 나타내면 1이었다. 그러므로 이번에 θ가 360도 일 때, P는 원호의 길이가  2π에 위치에 있다.따라서, 이때의 θ는 라디안으로 2π다. 따라서, 360도는 라디안으로 표현하면 2π와 같다. 그러므로 절반인 180도는 π다.

덧셈정리

위 단위원을 보면, 내각 a 위치에 있는 점 P:(cos a, sin a)를 b만큼 회전 이동한 점의 좌표가 P`:(cos(a + b), sin(a + b))라는 것을 알 수 있음.

여기서 cos(a + b), sin(a + b)를 구하는 방법은 덧셈정리를 이용하면 된다,
sin(a ± b) = sin a cos b ± cos a sin b

cos(a ± b) = cosa cosb ± sin a sin b

해당 덧셈정리를 P`에 적용해보면, 원래 점 P:(cos a, sin a)를 b만큼 회전한 점 P`의 위치는 다음과 같은데

(cos a cos b - sin a sin b, sin a cos b + cos a sin b)

이 식은 좌표의 임의의 점(x, y)에 대한 원점 중심의 회전 알고리즘으로 사용할 수 있다. 회전원의 점 P인 좌표인 cos a를 x로, sin a를 y로 치환해주면 된다. (x, y)를 b만큼 회전한 점의 위치는 다음과 같다.

(x cos b - y sin b, y cos b + x sin b)

이 덧셈정리에는 다양한 공식을 도출할 수 있다고 알려져있다.(ex. 반각의 공식)

 

사인파, 코사인파

 

'게임수학' 카테고리의 다른 글

게임 앱 환경  (1) 2025.02.02
곡선  (0) 2025.02.02
행렬  (1) 2025.01.30
벡터  (0) 2025.01.30
좌표계  (0) 2025.01.28