Getting ready for rotations

How do we make the wheels roll on a car? Or turn a table over onto its side? To accomplish these, we need to change the model's orientation in the virtual world. The operation that changes the orientation is called rotation. Unfortunately, rotations in three dimensions are much more complicated than translations, leading to countless frustrations for engineers and developers. To improve the clarity of 3D rotation concepts, we first start with a simpler problem: 2D linear transformations.

Consider a 2D virtual world, in which points have coordinates $ (x,y)$. You can imagine this as a vertical plane in our original, 3D virtual world. Now consider a generic two-by-two matrix

$\displaystyle M = \begin{bmatrix}m_{11} & m_{12}  m_{21} & m_{22} \end{bmatrix}$ (3.4)

in which each of the four entries could be any real number. We will look at what happens when this matrix is multiplied by the point $ (x,y)$, when it is written as a column vector.

Performing the multiplication, we obtain

$\displaystyle \begin{bmatrix}m_{11} & m_{12}  m_{21} & m_{22} \end{bmatrix} \begin{bmatrix}x  y \end{bmatrix} = \begin{bmatrix}x'  y' \end{bmatrix},$ (3.5)

in which $ (x',y')$ is the transformed point. Using simple algebra, the matrix multiplication yields

\begin{displaymath}\begin{array}{l} x' = m_{11} x + m_{12} y  y' = m_{21} x + m_{22} y . \end{array}\end{displaymath} (3.6)

Using notation as in (3.3), $ M$ is a transformation for which $ (x,y) \mapsto (x',y')$.

Steven M LaValle 2020-01-06