1
$\begingroup$

I was recently playing with a CAD 3D modelling program. Once you rotate a part using the mouse and let go, it keeps rotating the part using the rotation matrix provided by the mouse input.

The rotation is therefore given by:

$ \begin{align} R_t &= R_x \cdot R_y \cdot R_z \cdot t \\ &= \left[ \begin{matrix} 1 & 0 & 0 \\ 0 & \cos(\phi) & \sin(\phi) \\ 0 & -\sin(\phi) & \cos(\phi) \end{matrix} \right] \cdot \left[ \begin{matrix} \cos(\theta) & 0 & -\sin(\theta) \\ 0 & 1 & 0 \\ \sin(\theta) & 0 & \cos(\theta) \end{matrix} \right] \cdot \left[ \begin{matrix} \cos(\psi) & \sin(\psi) & 0 \\ -\sin(\psi) & \cos(\psi) & 0 \\ 0 & 0 & 1 \end{matrix} \right] \cdot t \\ &= \left[ \begin{matrix} \cos(\psi) \cos(\theta) & \sin(\psi) \cos(\theta) & -\sin(\psi) \\ -\sin(\psi) \cos(\phi) + \cos(\psi)\sin(\theta)\sin(\phi) & \cos(\psi) \cos(\phi) + \sin(\psi)\sin(\theta)\sin(\phi) & \cos(\theta) \sin(\phi) \\ \sin(\psi) \sin(\phi) + \cos(\psi)\sin(\theta)\cos(\phi) & -\cos(\psi) \sin(\phi) + \sin(\psi)\sin(\theta)\cos(\phi) & \cos(\theta) \cos(\phi) \end{matrix} \right] \cdot t \end{align} $ Where $t$ is the current time (ever increasing) and $\phi, \theta, \psi$ are the rotational inputs given by the mouse.

My question is rather simple;

  • Does there exist a single combination of $\phi, \theta, \psi$ such that all possible rotations can be achieved by increasing the time $t$?

Note: I'm not from a mathematical background, so my apologies for any incorrections in my question statement.

$\endgroup$
1
$\begingroup$

$R_t$ is not a rotation except if $t=1$. A rotation depends exactly on $3$ parameters, for example $\phi,\theta,\psi$.

EDIT. I think that, when you play, you select (with the mouse) an angle amongst the $3$ above, for instance $\phi$; then $\phi$ is changed with $\phi\pm t$ where $t$ is the time. If you want to reach any rotation, then you must successively make a change of all $3$ angles.

$\endgroup$
  • $\begingroup$ I do believe that I'm setting multiple rotation parameters at once. Once a model is loaded, it's centered around origin $(0,0,0)$. Clicking within the viewport, while seeing model from the front view ($X$-axis right, $Z$-axix up and $Y$-axis into the screen), and dragging perfectly horizontal applies a rotation around $Z$. Dragging perfectly vertically applies a rotation around $X$. Dragging diagonally seems to combine these two, so when dragging diagonally ain't I effectively setting two of the rotation parameters? $\endgroup$ – Skeen Feb 2 '16 at 17:46
  • $\begingroup$ NOTE: I don't believe I'm able to set all three rotation parameters, unless I'm doing it from the 'axonometric view', i.e. where all three axises are visible at once. $\endgroup$ – Skeen Feb 2 '16 at 17:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.