기준점을 이용한 Transform 회전
이렇게 World를 기준 점으로 했을때 Z Axis로 회전된 Transform을 구해보자.
Position과 Rotation을 분리해서 접근한다.
Position만 보면 0,0,0 에서 주전자까지의 Vertor의 회전이라 할 수 있다.
이는 일반 회전 matrix연산을 이용해 회전된 Vetor의 좌표 알아내면, 그것이 바로 Position 좌표가 된다.
[x`,y`,z`] = [x,y,z]*(matrix3 [cos θ, sin θ, 0] [-sin θ,cos θ, 0][0, 0, 1] [0,0,0])
(Z Axis 기준)
그럼 이제 Rotation을 보자
Rotation은 어느 위치에 있던지 보는 Vetor 방향이 같다면 같은 회전을 가진다고 본다.
그렇다는 것은 위 그림과 같이 Local 회전이 기준 축 회전과 같은 회전임을 말한다.
초기 주전자의 Transform = matrix3 [Xx, Xy, Xz] [Yx, Yy, Yz] [Zx, Zy, Zz] [Posx,Posy,Posz]
baseTM = matrix3 [Xx, Xy, Xz] [Yx, Yy, Yz] [Zx, Zy, Zz] [0,0,0])
rotTM = matrix3 [cos θ, sin θ, 0] [-sin θ,cos θ, 0][0, 0, 1] [0,0,0]
baseTM * rotTM => 요기의 방향 Vetor가 회전 값이다.
여기에서 Position과 Rotation의 회전 Matrix가 같으니
기준점 회전 공식은 다음과 같이 정의 할수 있다.
selTM = 이동전 Transform
selTM*matrix3 [cos θ, sin θ, 0] [-sin θ,cos θ, 0][0, 0, 1] [0,0,0]
'Max' 카테고리의 다른 글
MaxScript) Matrix 함수 정보 (0) | 2013.01.19 |
---|---|
MAX Custom ViewCube 적용하기 (0) | 2012.06.28 |
Transform 회전 (0) | 2012.03.08 |
Local Transform 과 World Transform 구하기 (0) | 2012.02.22 |
Script Controller - Transform으로 LookAt 만들기 (0) | 2012.02.09 |