글
Atan2 에 대하여.. (what is atan2?)
아래 내용은 끄적이는 것들이기 때문에 지속적으로 수정될 수 있음..
연구를 하다보면 삼각함수를 사용하게 될 경우가 많다.
특히 기구학 등을 analytic하게 풀기 위해서는 반드시 필요한 문제가 되겠다.
이 때 sin, cos 과 함께 자주 사용되는 녀석은 atan 함수라고 할 수 잇다.
이 문제는 일례로 HTransform matrix를 통해 roll, pitch, yaw로 표현되는 orientation을 구할 때 발생할 수 있다.
생각해보자. tangent함수는 pi를 주기로 반복되는 함수다. (그림은 구글에서 퍼왔음)
따라서 2pi 범위 내에서는 해가 두 가지 존재할 수 있겠다!
이것을 구분해 주는 방법이 필요하다는 사실을 직감할 수 있다!
(그렇지 않으면 아래와 같은 문제가 발생하겠지..)
그리고 또 한가지, tan함수는 불연속적으로 반복된다! pi/2 마다 infinite로 발산하고 있는 것을 알 수 있다.
이로 인해 우리가 고려해야 할 부분이 있다.atan의 인자로 사용되는 sin과 cos의 조합으로는 충분히 발생할 수 있는 문제가 있다는 것!
바로 분모가 0 이 되어 무한대가 발생하는 것!!
하지만 수학적으로 분모가 0이 된다는 것은 말이 되지 않는다.
그래서 우리는 알고리즘적으로 분모가 0에 매우 가까울 경우에는 atan의 값이 ' +-(2n-1)pi/2 , n은 정수 '라고 가정할 수 있겠다!
그래서 atan을 정상적으로 사용하기 위해서는 아래와 같은 가정이 필요하게 된다.
하지만 이 모든 알고리즘을 내포하고 있는 것이 바로 atan2가 되시겠다. 짜잔!! 대단하다.
다만 dx와 dy가 모두 0일 때에는 값이 정의되지 않음에 유의하자!
아래의 설명을 첨부한다. 굉장히 잘 설명하고 있다.
'Research > Mathmatics' 카테고리의 다른 글
Skew symmetric matrix (0) | 2015.04.15 |
---|---|
Eigen Vectors and Eigen Values (0) | 2015.02.27 |
What is homogeneous transform? (0) | 2015.01.16 |
Fourier Transform (푸리에 변환) (0) | 2014.12.02 |