One of the simplest ways to parameterize 3D rotations is to construct them from ``2D-like'' transformations, as shown in Figure 3.7. First consider a rotation about the -axis. Let *roll* be a counterclockwise rotation of about the -axis. The rotation matrix is given by

The upper left of the matrix looks exactly like the 2D rotation matrix (3.13), except that is replaced by . This causes yaw to behave exactly like 2D rotation in the plane. The remainder of looks like the identity matrix, which causes to remain unchanged after a roll.

Similarly, let *pitch* be a counterclockwise rotation of about the -axis:

In this case, points are rotated with respect to and while the coordinate is left unchanged.

Finally, let *yaw* be a counterclockwise rotation
of about the -axis:

In this case, rotation occurs with respect to and while leaving unchanged.

Steven M LaValle 2020-11-11