세 점(기준점, 점1, 점2)이 있을 때 atan()함수를 1번만 써서 사잇각을 구하는 방법이다.

원리는 간단하다.


아래와 같이 한 각과 기준각이 이루는 각도를 α, 나머지 각을 β라 한다.



그러면 θ = α - β 라 할 수 있다.


tanθ는 다음과 같이 나타낼 수 있으므로 sinθ와 cosθ를 구하여 atan2의 각 매개변수로 넣으면 각을 알 수 있을 것이다.


먼저 sinθ는 삼각함수의 덧셈정리에 의해 이렇게 전개할 수 있다.


위 식을 처음에 주어진 x분과 y성분으로 나타낼 수 있으므로,

최종적으로는 이렇게 쓸 수 있다.




코사인세타도 같은 방법으로 전개한다.


공통항인 1/l1l2를 소거하면 아래와 같은 표현식을 얻을 수 있다.



angle = atan2(y1x2-x1y2, x1x2+y1y2);




atan2 함수가 아닌 atan함수를 사용한다면 atan(sin값/cos값) 형태로 사용하면 될 것이다.

→ angle = atan(y1x2-x1y2 / x1x2+y1y2);



▼ 컴퓨터 프로그램으로 작성하여 구동한 화면.



  1. aziya 2022.07.19 14:40

    잘 정리된 내용 고맙게 봤습니다. 찾고 있던 내용이라 도움이 많이 되었습니다.
    다만, 오타가 있어서 글 남깁니다. 코싸인쎄타를 전개하면서 x,y 성분으로 나타낼 때, 중간에 부호가 -로 잘못 표기되어 있는 것 같습니다.
    그래도 다행히 공통항을 소거한 후에는 부호가 +로 맞게 표현되어 있어 최종 결과에는 문제가 없습니다.

+ Recent posts