Atan2
Arctangent 를 각도 구하기에 사용하는 이유
모든 프로그래밍 언어에는 아크탄젠트를 계산할 수 있도록 Math 모듈에 atan(y / x)과 atan2(y, x) 함수를 지원한다.
아크탄젠트 (arctangent)는 역탄젠트라고도 하며 탄젠트의 역함수 (Inverse function)이다.
Atan2_-trigonometry-_explain.png
아크탄젠트를 이용하면 위 사진에서의 θ의 각도를 구할 수 있다.
좀 더 자세히 설명
\(tan(θ) = a / b\) 이므로 \(a / b = x\) 라 할 때,
- \(tan(θ) = x\)
- 역함수는 \(tan(x) = θ\) 이다.
Return Range
Atan2_-_return_range.png
atan2는 두 점 사이의 상대좌표(x, y)를 받아 절대각을 -π ~ π의 라디안 값으로 반환한다. (-180 ~ 180도)
참고로, atan은 두 점 사이의 탄젠트값을 받아 절대각을 -π/2 ~ π/2 의 라디안 값으로 반환한다. (-90 ~ 90도)
각도를 계산할 때 atan대신 atan2
를 사용하는 이유
Atan2_-_cartesian_coordinate_system.png
+극과 -극이 표시되는 데카르트 좌표계에서 사용할 때 유용하다.
atan2 함수는 점 A로부터 점 B가 상대적으로 어느 위치에 있는지를 파라미터로 받는데, 상대적인 위치이기 때문에 파라미터 x나 y가 음수값이 될 수 있다.
하지만 atan 함수를 사용한다면 파라미터가 직선의 기울기이므로 결과값은 방향 개념이 상실된 두 점 사이의 각도가 되어버린다.