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 . You can imagine this as a vertical plane in our original, 3D virtual world. Now consider a generic two-by-two matrix

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 , when it is written as a column vector.

Performing the multiplication, we obtain

in which is the transformed point. Using simple algebra, the matrix multiplication yields

(3.6) |

Using notation as in (3.3), is a transformation for which .

Steven M LaValle 2020-11-11