Name

glRotatef , glRotatex - multiply the current matrix by a rotation matrix

C Specification

void glRotatef(GLfloat angle, GLfloat x, GLfloat y, GLfloat z)
void glRotatex(GLfixed angle, GLfixed x, GLfixed y, GLfixed 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:

(
x2 (1 - c) + c xy (1 - c) - zs xz (1 - c) + ys 0
xy (1 - c) + zs y2 (1 - c) + c yz (1 - c) - xs 0
xz (1 - c) - ys yz (1 - c) + xs z2 (1 - c) + c 0
0 0 0 1
)

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.

Copyright

Copyright © 2003-2004 Silicon Graphics, Inc.

This document is licensed under the SGI Free Software B License. For details, see http://oss.sgi.com/projects/FreeB/.

See Also

glMatrixMode, glMultMatrix, glPushMatrix, glScale, glTranslate