3D 기초 수학 - 6. 삼각함수(sin, cos, tan)

2016-06-27

삼각함수

수학에서, 삼각함수(三角函數, 영어: trigonometric function)는 직각삼각형의 각을 직각삼각형의 변들의 길이의 비로 나타내는 함수이다.

(출처 : https://ko.wikipedia.org/wiki/삼각함수) 벡터 챕터에서 그래왔던 것처럼 이번 챕터에서도 삼각함수의 실제 쓰임에 대해서 알아본 뒤 수학적 정의를 이해해 나가는 형태로 배워보도록 하겠습니다. 편안한 마음으로 읽어 나가시면 됩니다. 삼각함수, 사인, 코사인, 탄젠트 이런 말 한번쯤은 다들 들어보셨겠죠? 제가 학창시절 때 삼각함수를 배웠던 때를 떠올리면 정말 머릿속이 멍했던 기억밖에는 없습니다. 교과서를 아무리 들여다 봐도 삼각함수가 무엇인지, 원과 삼각형이 무슨 관계인지 알 수가 없었기 때문입니다. 저와 같은 분들을 위해서 3D 게임 프로그래밍에서 자주 쓰이는 삼각함수에 대해 아주 쉽게 알려드리도록 하겠습니다.

탄젠트(tan)

이야기로 아주 쉽게 배우는 삼각함수”라는 책을 보면 크리스마스 때 사용할 나무의 높이를 재기 위해 직각 삼각형의 개념을 활용한 부분이 나옵니다. 나무가 너무 높아 직접 올라가서 잴 수 없으니 태양의 고도가 45도 일 때 나무의 그림자 길이를 재서 나무의 높이를 알아냈다고 하죠. 이것을 그림으로 나타내면 다음과 같습니다.

이 그림을 자세히 보면 두 변의 길이가 같은 이등변 삼각형이 그려진다는 것을 알 수 있습니다. 이등변 삼각형은 두 변의 길이가 같으니 나무의 그림자의 길이는 곧 나무의 높이와 같다는 사실 또한 알 수 있죠. 그리고 이 삼각형은 직각 삼각형이라는 것은 말씀드리지 않아도 아실겁니다. 방금 말씀드린 내용이 삼각함수 중 탄젠트에 대한 내용입니다. 짠! 삼각함수가 이렇게 쉬운 것이었습니다!

tan(45°) = 1

tan은 삼각함수중 하나인 탄젠트라는 함수인데 직각 삼각형에서 어떠한 각도를 넣었을 때 밑변과 먼변(수직인 변)의 비율을 구해줍니다. 이 예제에서 그림자의 길이와 나무의 높이의 비율을 구했던 것처럼 말이죠.

사인(sin)

이번에는 눈썰매장을 만든다고 상상해 봅시다. 25도 각도의 경사에 100미터 짜리 슬로프로 만들 계획입니다. 그림으로 나타내면 이런 모습이 되겠죠.

그런데 한 가지 문제가 있습니다. 슬로프의 길이와 각도는 정해졌는데 슬로프를 지지할 기둥의 높이를 몇 미터로 해야 되는지 모른다는 것이죠. 그림을 자세히 보니 이번에도 직각 삼각형이 그려졌네요. 그렇다면 삼각함수를 이용해서 뭔가 알아낼 수 있을 것 같습니다. 다만 밑변이나 높이의 길이를 모르니 아까 배웠던 탄젠트를 사용할 수는 없겠네요. 이 때 사용할 수 있는 것이 사인(sin)입니다. sin은 제일 긴 빗변과 높이의 비율을 구해주는 함수입니다. 위 그림에서 보면 100m짜리 슬로프가 빗변을 의미 하는데 sin함수를 통해서빗변과 먼변(높이)의 비율을 구한 뒤 빗변의 길이만큼 곱해주면 높이값이 나오게 되겠죠.(빗변의 길이만큼 곱한다 라는 부분은 잠시 후에 설명해 드리겠습니다) 그럼 정말 sin함수를 통해서 높이를 구할 수 있는지 계산기를 두드려 봅시다.

윈도우 계산기로 sin(25°)를 계산한 결과

sin(25°)에 빗변의 길이인 100을 곱해준 결과

짠! 이렇게 해서 기둥의 높이는 42.2.... 미터가 되겠습니다. 탄젠트(tan)에 이어 사인(sin)도 직각 삼각형에 대해서 사용할 수 있다는 것, 그리고 하나의 각도가 주어져야 한다는 것을 알게 되었습니다. 우리 주변을 자세히 보면 생각보다 많은 것들이 직각 삼각형으로 표현된다는 것을 알 수 있죠. 그런데 여기서 이런 의문을 갖는 분도 계실 겁니다. 직각 삼각형에서 한 각도를 선택해 sin(25°)를 계산한 것 까지는 알겠는데, 왜 이 결과값에 슬로프의 길이인 100을 곱해서 높이를 구한 것일까? 이 의문이 풀려야 사인(sin)에 대해서 확실히 이해했다고 할 수 있겠죠. 일단 한 가지 확실히 알게 된 것은 사인(sin)은 빗변과 높이의 비율을 구해주는 함수라는 것입니다. 그렇다면 탄젠트(tan)와 마찬가지로 다음과 같이 분수의 형태로 표현할 수 있습니다.

sin(25도) = 0.422 라는 것은 슬로프의 길이(빗변)에 비해 기둥의 높이(먼변)가 0.422배 작다 라고 생각할 수 있겠죠(잘 이해가 안간다면 첫 번째 강좌에 나왔던 분수의 개념을 다시 확인해 보세요). 따라서 슬로프의 길이가 100m 라면 기둥의 높이는 100m에 비해 0.422배 작기 때문에 100 x 0.422 = 42.2라는 식으로 이해할 수 있습니다.

닮은 삼각형

아직도 약간 알 듯 모를 듯 한 분들을 위해서 또 다른 방법을 준비했습니다. 실제로 100m 짜리 슬로프에 25도 경사를 가진 삼각형을 그리려면 학교 운동장을 다 써야 할 만큼 커다란 삼각형이 나올 겁니다.따라서 집에서도 손쉽게 할 수 있도록 슬로프의 길이를 10cm로 축소하여 그려봅시다.

이렇게 그리면 실제로 100m의 슬로프 보다는 훨씬 작지만 생김새는 똑같은 삼각형이 됩니다.이제 이 삼각형의 높이를 자로 재 보면...

4.2cm가 나옵니다.그렇다면 슬로프의 길이가 10cm에서 100m로 늘어났듯이기둥의 높이도 4.2cm에서 슬로프의 길이가 늘어난 것과 같은 비율로 늘어날 것입니다.왜냐하면 둘은 생김새는 같지만 크기만 다른 닮은 삼각형이기 때문입니다. 직접 계산을 해 봅시다. 먼저 종이에 그린 삼각형과 실제 슬로프와의 단위를 맞춰야 합니다. 둘 다 센티미터로 바꾸면 100m는 10000cm가 됩니다(1m = 100cm이므로) 10cm에서 10000cm로 늘어났으니 정확히 1000배가 늘어난 셈이네요. 그럼 4.2cm에 1000배를 하면 4200cm가 나옵니다. 이것을 다시 미터로 환산 하면 42m가 됩니다(4200 / 100 = 42). 종이에 그린 삼각형의 높이를 잴 때 소수점 단위까지 잴 수 없었으므로 42m로 나오지만 아주 정밀한 자를 이용하여 소수점 단위까지 잰다면 42.2m까지 계산될 겁니다. 이런 방법을 통해서 알 수 있는 것은 삼각함수는 삼각형의 크기와는 관계없이 각도에만 영향이 있다는 것을 알 수 있습니다. 즉, 어떤 크기의 직각 삼각형이든 주어진 각도가 똑같다면 항상 같은 값을 돌려준다는 뜻입니다.

코사인(cos)

사인(sin), 탄젠트(tan)에 이어 3D 게임 프로그래밍에서 자주 사용하는 삼각함수는 코사인(cos)입니다. 사인(sin)함수는 기둥의 높이를 잴 때 사용했었죠. 코사인(cos)함수는 밑바닥의 길이를 잴 때 사용할 수 있습니다.눈썰매장 그림을 다시 봅시다.

기둥의 높이는 사인(sin)함수를 통해 계산했습니다. 바닥의 길이는 어떻게 잴 수 있을까요? 여기에는 코사인(cos)함수가 사용 됩니다.(네. 물론 피타고라스 정리를 이용해서도 구할 수 있습니다.) 사인함수는 빗변과 먼변(높이)의 비율을 계산해 준다고 했습니다. 코사인함수는 빗변과 밑변(바닥)의 비율을 계산해 주는 함수입니다. 이쯤이면 이제 바닥의 길이를 구하는 것도 식은 죽 먹기겠죠? 바로 계산기를 두드려 봅시다.

이 값에 슬로프의 길이인 100을 곱하면...

90.6307...m가 나옵니다.

그럼 종이에 그린 작은 삼각형의 밑변의 길이도 재 봅시다.

9cm보다 조금 더 큽니다. 이제 이 값을 아까 높이를 구할 때 사용한 방법대로 계산해 보겠습니다. 9cm x 1000 = 9000cm= 90m 소수점까지 잴 수 없으므로 정확하게 맞아 떨어지진 않지만 거의 비슷한 값이 나왔습니다. 이 과정을 통해서 코사인(cos)함수도 삼각형의 크기와는 관계없이 주어진 각도에만 영향이 있다는 사실을 알 수 있습니다. 삼각함수를 계산할 때 변의 길이를 입력하지 않고 각도를 입력한다는 것만 봐도 삼각함수가 각도와 관계가 있다는 것을 직관적으로 알 수 있죠.

삼각함수 정리

사인(sin) = 빗변과 먼변(높이)의 비율을 구한다. 코사인(cos) = 빗변과 밑변의 비율을 구한다. 탄젠트(tan) = 밑변과 먼변(높이)의 비율을 구한다. 삼각함수는 직각 삼각형에 대해서 하나의 각이 주어졌을 때 각 변에 대한 비율을 구해준다.

Last updated