
142 Chapter 2 The Graphics System
glRotatef(fDegrees,kAxis.X(),kAxis.Y(),kAxis.Z());
float afOpenGLRotate[16];
glGetFloatv(GL_MODELVIEW_MATRIX,afOpenGLRotate);
The resulting rotation matrix is, of course, 4 × 4, but the upper-left 3 × 3 matrix is
the same one used by Wild Magic, as shown in Equation (2.22). For the sample code
here, the rotation matrix is
⎡
⎢
⎢
⎢
⎢
⎣
0.9966 −0.0559 0.0593
0
0.0593 0.9966 −0.0559
0
−0.0559 0.0593 0.9966
0
0001
⎤
⎥
⎥
⎥
⎥
⎦
This is in the form in which you would multiply a vector by placing it on the right of
the matrix as a column vector.
A couple of items to be aware of. First, OpenGL’s
glRotate functions expect the
angle in degrees. Wild ...