4.7 Vector Geometry of Affine Transformations 139
and
T
y
(θ) =
cos θ 0 − sin θ 0
01 0 0
sin θ 0cosθ 0
00 0 1
Of course, these values can be arrived at via purely trigonometric reasoning, also
exploiting the fact that the basis vectors are orthonormal.
General Rotation
While individual rotations of points about the basis vectors (the “coordinate axes”)
may be a part of any graphics application, the general case is for a rotation by some
angle about an arbitrarily oriented axis. That being the case, most graphics texts then
go on to explain how you construct the matrix for a general rotation by decomposing
it (in a rather complex fashion) into a sequence of individual steps—translation of a
point on the rotation axis to the origin, determination of the three different angles of
rotation about each coordinate axis, and translation to “undo” the first translation.
The matrix for each of these steps is computed, and the final matrix representing the
general rotation is created by multiplying all of these matrices together.
This conventional approach can be shown to “work,” in that you can be convinced
that the matrix “does the right thing,” but the process is quite complex and results
in a matrix that’s essentially a “black box” from an intuitive standpoint—that is,
there is provided no understanding of the properties or characteristics of the rotation
matrix.
In this section, we’ll show how a general rotation can be defined in terms of
(coordinate-free) vector algebra and how this approach allows us to construct a ro-
tation matrix directly (i.e., as opposed to breaking it down into a sequence of trans-
lations and Euler rotations), in a way that we hope will leave you with an intuitive
understanding of the structure and properties of a rotation matrix. In short, we wish
to show why a general rotation matrix is the way it is, rather than just how you can
construct one using ad hoc trigonometric operations.
Figure 4.12 shows the general case of rotation of points and vectors about an
arbitrary axis. That figure, and the one following it, are a bit complex, so here are
the definitions of the symbols:
Q, ˆu point and unit vector defining the axis of rotation
θ angle of rotation
P point to be rotated
T(P) rotated point
v vector to be rotated