티스토리 뷰

Programming/수학&물리

각도에따라서 회전시키기!

군자동꽃미남 2015. 1. 7. 18:55

* 이 방법은 Project Ex에서 사용한 방법입니다. 
* DirectX에서 랜더링할때 Radian값을 설정해 회전하는 방식으로 했습니다. 공식자체는 다른곳에서 사용해도 무관할듯 합니다. 
* 이미지의 중심점을 축으로 회전을 시키는 방식입니다. 


- 이미지의 밑변과 높이를 구한다. 

     높이 = 나중좌표.y - 이미지의 중심점.y; 
     밑변 = 나중좌표.x - 이미지의 중심점.x; 

     * 만약 이미지의 밑변이 0이라면 강제적으로 1로 값을 넣어줘야 정확한 회전각이 나옵니다. 
     
     회전은 시계방향으로 회전을 하게 됩니다. 따라서 중심을 축으로 왼쪽은 +각도, 오른쪽은 -각도가 나오게 됩니다.(180도 기준) 
     if(밑변 < 0) 
         회전각 = 아크탄젠트(높이/밑변) * 180도 / 원주율(3.14); 
     else 
         회전각 = 아크탄젠트(높이/밑변) * 180도 / 원주율(3.14) - 180도; 

- 부연설명. 
     * 회전각을 구하는 공식에서 180도를 곱한 이유는, 최대 회전각을 정하기 위해서입니다.360도로 지정해도 상관은 없지만, 
       계속 회전을 시켜주기 위해서는 180도만큼의 각도를 구하고 +, - 영역으로 나누어 계속 값을 바꿔나가기 위해서입니다. 
     * else부분에서 -180도를 해준 이유는, 중심을 축으로 왼쪽은+, 오른쪽은-인데 위와 같은 경우와 밑변이 0보다 클 경우에는 
        오른쪽으로 회전이 되지 않기때문에 보정을 해 주는 것 입니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함