Using matrices and 3 rotation angles for $x,y,z$ axes, how can you compute the final position of a point in 3D?

165 Views Asked by At

Seeing that the three individual rotation matrices for each axis are not commutative, I was wondering how a point (e.g. $[1,2,3]$) could be rotated in 3D space with a single matrix as to avoid the "commutative" issue.

1

There are 1 best solutions below

0
On

A point is rotation can be described with either of two scenarios, each requiring three pieces of information to fully describe:

  1. Three sequential rotations about fixed axes. For example $$ \mathrm{R} = \mathrm{RZ}(\varphi)\,\mathrm{RY}(\psi)\,\mathrm{RZ}(\theta)$$

    This is described by the three angles $\varphi$, $\psi$ and $\theta$. These are called Euler angles.

  2. A single rotation about an arbitrary axis. For example $$ \mathrm{R} = \mathrm{Rot}(\hat{u}, \theta)$$ where the unit direction vector $\hat{u}$ needs two quantities for description (like longitude and latitude) and the third quantity is the angle $\theta$. This is the Rodrigues rotation formula.

There is an alternative scenario to the last one using quaternions where four quantities $x$, $y$, $z$ and $w$ are used to represent this axis and angle. There is a constraint that $\sqrt{x^2+y^2+z^2+w^2}=1$ for this scenario to work

$$ \begin{aligned} \hat{u} & = \frac{ (x,y,z) }{ \sqrt{x^2+y^2+z^2} } & &\text{axis} \\ \theta & = 2 \,\mathrm{atan}\left( \frac{ \sqrt{x^2+y^2+z^2}}{w} \right) & & \text{angle} \end{aligned}$$