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
Performing the multiplication, we obtain
Steven M LaValle 2016-12-31