User:DavidJCobb

From the CreationKit Wiki
Revision as of 15:47, 6 August 2014 by imported>DavidJCobb
Jump to navigation Jump to search

I'm working on a Papyrus library for working with rotations. For now, this is my scratchpad.

Converting any Euler sequence to a rotation matrix

Source: https://web.archive.org/web/20110721191940/http://cgafaq.info/wiki/Euler_angles_from_matrix

Corrected (Wikipedia-compatible) versions of that site's LaTeX are as follows:

"Symmetries" equation 1

  P = \begin{bmatrix} 0&1&0\\0&0&1\\1&0&0 \end{bmatrix}

"Symmetries" equation 2

  P = \begin{bmatrix} 0&0&1\\0&1&0\\1&0&0 \end{bmatrix}

"First merger" equation 1

\begin{align} {\mathrm rot}({\mathbf{xzy}_s},\theta_x,\theta_z,\theta_y) &= {\mathrm rot}(y,\theta_y)\,{\mathrm rot}(z,\theta_z)\,{\mathrm rot}(x,\theta_x) \\ &= \begin{bmatrix} c_y c_z & s_y s_x - c_y s_z c_x & s_y c_x + c_y s_z s_x \\ s_z & c_z c_x & -c_z s_x \\ -s_y c_z & c_y s_x + s_y s_z c_x & c_y c_x - s_y s_z s_x \end{bmatrix} \end{align}

"First merger" equation 2

\begin{align} {\mathrm rot}({\mathbf{xzx}_s},\theta_x,\theta_z,\theta_{x'}) &= {\mathrm rot}(x,\theta_{x'})\,{\mathrm rot}(z,\theta_z)\,{\mathrm rot}(x,\theta_x) \\ &= \begin{bmatrix} c_z & -s_z c_x & s_z s_x \\ c_{x'} s_z & c_{x'} c_z c_x - s_{x'} s_x & -s_{x'} c_x - c_{x'} c_z s_x \\ s_{x'} s_z & s_{x'} c_z c_x + c_{x'} s_x & c_{x'} c_x - s_{x'} c_z s_x \end{bmatrix} \end{align}

"First merger" equation 3

{\mathrm rot}(z,\theta_z)\,{\mathrm rot}(x,\theta_x) = \begin{bmatrix} c_z & -s_z c_x & s_z s_x \\ s_z & c_z c_x & -c_z s_x \\ 0 & s_x & c_x \end{bmatrix}