본문 바로가기
게임수학

삼각함수의 역함수(아크사인, 아크코사인, 아크탄젠트)

by build fail 2023. 11. 20.

역함수란?

함수에서 입력값과 출력값이 있었습니다.

역함수란 함수에서 입력값과 출력값의 위치가 바뀐 함수를 의미합니다.

예를 들어 입력값의 2배를 출력하는 함수가 있다고 생각해 봅시다.

입력값의 2배를 출력하는 함수

 

y = 2x 함수입니다.

여기서 입력과 출력이 바뀌면 

입력값의 절반을 출력하는 함수

 

y = x/2 함수가 됩니다.

즉 y = 2x 함수의 역함수는 y = x/2 가 됩니다.

 

 

 

역삼각함수

그렇다면 sin(θ) = 높이 / 빗변 함수의 역함수는 무엇일까요?

바로 θ(각도)높이 / 빗변(삼각비)의 위치를 바꾸면 sin함수의 역함수가 됩니다.

 

arcsin(높이 / 빗변) = θ

 

나머지 코사인과 탄젠트의 역함수도 마찬가지입니다.

 

arccos(밑변 / 빗변) = θ

arctan(밑변 / 높이) = θ

 

sin, cos, tan 함수의 입력과 출력값이 바뀐 형태의 함수를 arcsin(아크사인), arccos(아크코사인), arctan(아크탄젠트) 라고 합니다.

 

 

 

[부록]

역삼각함수에 대해서 알아보았습니다. 

그렇다면 게임에서 역삼각함수는 언제 사용될까요?

간단한 예시를 하나 소개하겠습니다.

 

플레이어가 있고 적이 있습니다.
플레이어가 가지고 있는 미사일을 적을 자동 조준합니다. (적이 있는 방향으로 각도를 회전해야 합니다)
우리가 알 수 있는 정보는 미사일의 위치와 적의 위치정보밖에 없습니다.
미사일의 자동 조준 기능을 구현하려면 어떻게 해야 할까요?

 

먼저 적의 위치에서(위치 정보는 2D 공간의 백터 입니다.) 미사일의 위치(플레이어의 위치라고 하겠습니다.)를 빼면 플레이어의 위치와 적의 위치로 직각 삼각형을 그리고 밑변과 높이값을 알 수 있습니다.

 

밑변과 높이라고 하면 탄젠트 함수가 떠오릅니다.
하지만 탄젠트 합수는 입력값으로 각도를 넣는 함수입니다.
바로 여기서 아크 탄젠트 함수를 사용할 수 있습니다.
아크 탄젠트함수의 입력값으로 높이 / 밑변 값을 넣어주면 우리가 구하고 싶은 각도를 구할 수 있습니다.

 

arctan(높이 / 밑변) = 각도