[3D] 회전 행렬의 의미
3D를 하고 있는 사람이라면 잘 보는 녀석이군요.
\begin{equation}
\begin{vmatrix}
X' \\
Y' \\
Z' \\
W'
\end{vmatrix}
=
\begin{vmatrix}
\cos\theta z &-\sin\theta z &0 &0 \\
\sin\theta z &\cos\theta z &0 &0 \\
0 &0 &1 &0 \\
0 &0 &0 &1
\end{vmatrix}
\times
\begin{vmatrix}
X \\
Y \\
Z \\
1
\end{vmatrix}
\end{equation}
그렇다면 왜 이런 행렬이 되는가?
그 대답이 이 그림입니다↓
이 그림은 그림에서 배우는 게임 3D 수학 에서 소개되고 있는 것으로부터 인용했습니다.
$p$ 와 $q$ 의 값이 어떻게 변화하고 있는지 주목해 주세요.
회전 행렬로 나오는 값이 있네요.
$p$ 는 X축의 점을 나타내고, $q$ 는 Y축의 점을 나타내고 있습니다.
X축의 점 $[1, 0]$ 를 $θ$ 만큼 회전하면 그 좌표는 $[cos θ, sin θ]$ 가 되는 것을 알 수 있다고 생각합니다.
그리고 문제는 Y축.
Y축의 경우는 조금 발상을 전환하고, Y축을 X축으로 두고 생각하면 알 수 있습니다.
즉, Y축 「로부터」$θ$ 만큼 회전한 위치의 좌표를 구하면 되는 것입니다.
다만, 생각을 전환한 것만으로 좌표 공간은 변하지 않으므로, 결과적으로 $[0, 1]$ 의 점을 이동하는 경우, X축 마이너스 방향으로 이동하게 되므로, 최종적으로 $[-sin θ, cos θ]$ 이동하면 목적의 좌표가 구해진다는 것입니다.
결국, X, Y 모두 이러한 값을 곱해 주면 원하는 회전을 얻을 수 있다는 것입니다.
쉐이더를 쓰고 있으면, 이 회전 행렬과 비슷한 처리를 하고 싶은 경우가 있거나 합니다.
그 때는 이것을 기억해, 적절하게 코드를 써 주면 일부러 행렬을 만들지 않아도 원하는 회전을 얻을 수 있습니다.
(라고 할까, 바로 그것이 있고 비망록으로 쓴 것은 비밀입니다 w)
Reference
이 문제에 관하여([3D] 회전 행렬의 의미), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/edo_m18/items/d3c544652c6d7c21c3c0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)