728x90
원문 : http://mycom333.blogspot.kr/2014/01/axis-angle-rotation.html

위 블로그를 기초로 나름대로 정리해보았다. 정리라 쓰고 복사라 읽는다.



3차원 공간에서 i=(1,0,0), j=(0,1,0)일때  i를 Z축에 대해 회전시키면 다음과 같이 나타낼 수 있다.



이는 xy평면상의 회전과 같습니다.


이 식을 이용하여 i, j대신 v_perp, w를 사용하고 회전축은 A를 사용하겠습니다.





v_proj : 벡터 v를 A축에 대해 projection

v_perp : 벡터 v를 A축에 대해 perpendicular



위 식을 이용해 회전된 v_perp에 v_proj를 더하여 회전된 v를 얻을 수 있다.


즉 회전된 v는 다음과 같다.




먼저 v_proj부터 구하면


:  A의 unit vector


일때


이다.


v_perp + v_proj = v 로 v_perp를 구할 수 있다.




w는 회전축 A와 v의 외적으로 구해진다.



지금까지 구해진 것들로 식을 다시 쓰면




v를 분리하여 (행렬 * 벡터) 식으로 만들기 위해 tensor product와 skew matrix를 사용하여 정리합니다.



[tensor product]


두 벡터 v, w에 대해



세 벡터 u, v, w에 대해 다음 식이 성립한다.


(계산해보면 쉽게 알 수 있다.)



[skew matrix]


벡터 v, w의 외적을 skew matrix로 변환하여 행렬 * 벡터로 바꿀 수 있다.




이제 식을 정리하면


I : identity matrix



벡터 v를 분리 했으니 회전행렬 R이 될 부분을 정리하면





이 유도된 행렬을 이용하여 임의의 축 A를 기준으로 임의의 벡터 v를 회전시킬 수 있습니다.


728x90

'수학' 카테고리의 다른 글

법선 벡터의 변환  (0) 2022.01.02
선형 보간(lerp)과 구면 선형 보간(slerp)  (0) 2016.06.11
로지스틱 함수  (0) 2016.03.17
Perspective Projection Matrix(원근 투영 행렬)의 유도  (0) 2016.01.31
오일러 공식(Euler fomula)  (0) 2016.01.05

+ Recent posts