モデルビュー行列

modelview-matrix.png

回転してから平行移動するのが基本。
OpenGLでは後にしたいものほど右側にする。

modelView=modelView*rotation;

こんなかんじ。
逆だと、変な位置を中心として大回転してしまうぞ。
なぜそうしなきゃいけないのか、理由は計算してみればわかる。

(1)
\begin{align} M=RT= \begin{bmatrix} r_{11}&r_{12}&r_{13}&0\\ r_{21}&r_{22}&r_{23}&0\\ r_{31}&r_{32}&r_{33}&0\\ 0&0&0&1\\ \end{bmatrix} \begin{bmatrix} 1&0&0&\Delta x\\ 0&1&0&\Delta y\\ 0&0&1&\Delta z\\ 0&0&0&1\end{bmatrix} = \begin{bmatrix} r_{11}&r_{12}&r_{13}&\Delta x\\ r_{21}&r_{22}&r_{23}&\Delta y\\ r_{31}&r_{32}&r_{33}&\Delta z\\ 0&0&0&1\end{bmatrix} \end{align}

サポートサイト Wikidot.com