흔히 두 점 사이의 각도를 구할 때 사용하는 함수가 atan2(y, x) 함수이다. 아크탄젠트는 탄젠트의 역함수인데 C++ 에서 사용하는 방법은 아래 IBM 페이지에 자세히 나와 있다.
atan() – atan2() — 역탄젠트 계산
형식 #include double atan(double x); double atan2(double y, double x); 설명 atan() 및 atan2() 함수는 각각 x 및 y/x의 역탄젠트를 계산합니다. 리턴값 atan() 함수는 -π/2에서 π/2의 라디안 범위에서 값을 리턴합니다.
www.ibm.com
두 점 사이의 각도를 구할 때 atan2() 함수를 사용하긴 했는데 정확히 어떤 의미 인지 함수를 그려보자. 먼저 아래 그림을 보면 각 $ \theta $ 에 대한 sin, cos, tan 값을 구할 수 있는데,
각 $ \theta $ 의 변화에 따른 tan 함수와 tan$^{-1}$ 함수 즉, 아크탄젠트 함수는 각각 아래와 같다.
tan 함수의 입력은 radian 값이며, atan2 함수의 출력은 radian 값 이다. 실제 각도를 구하기 위해서는 atan2 함수의 출력을 radian to degree 로 변환하면 된다. 각도 변환은 각각 다음과 같다. degree to radian 인 경우 π/180 (= 0.0174533)를 곱하면 되고, radian to degree 인 경우 180/π (= 57.2958)를 곱하면 된다.
'IT 스터디 > C, C++' 카테고리의 다른 글
error C2065: 'M_PI': 선언되지 않은 식별자입니다. (feat. openMVG) (1) | 2023.10.19 |
---|---|
VS Code C++ Debugging on Ubuntu (2) - feat. "launch.json" (0) | 2023.09.08 |
collect2: error: ld returned 1 exit status 에러?? (0) | 2023.08.11 |
CMake 간단 사용법 (1) (0) | 2023.08.01 |
Ubuntu 에서 VS Code 설치 및 C++ 디버깅 하기 (0) | 2023.06.13 |