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 |