R
glRotate
Chapter 16
388
glRotate
glRotated, glRotatef: multiply the current matrix by a rotation matrix.
C Specification
void glRotated(
GLdouble angle,
GLdouble x,
GLdouble y,
GLdouble z)
void glRotatef(
GLfloat angle,
GLfloat x,
GLfloat y,
GLfloat z)
Parameters
angle Specifies the angle of rotation, in degrees.
x, y, z Specify the x, y, and z coordinates of a vector, respectively.
Description
glRotate produces a rotation of angle degrees around the vector (x, y, z). The current
matrix (see glMatrixMode) is multiplied by a rotation matrix with the product replacing
the current matrix, as if glMultMatrix were called with the following matrix as its
argument:
xx (1- c) + c xy (1 - c) - xz (1- c) + 0
zs ys
yx (1- c) + zs yy (1- c) + c yz (1 - c) 0
xs
zx (1 - c) - zy (1 - c) + zz (1 - c) + c 0
ys xs
0001
Where c = cos(angle), s = sin(angle), and ||(x, y, z)|| = 1 (if not, the GL will normalize
this vector).
If the matrix mode is either GL_MODELVIEW or GL_PROJECTION, all objects drawn
after glRotate is called are rotated. Use glPushMatrix and glPopMatrix to save and
restore the unrotated coordinate system.
Notes
This rotation follows the right-hand rule, so if the vector (x, y, z) points toward the user,
the rotation will be counterclockwise.