Table of Contents

**glRotated, glRotatef** - multiply the current matrix by a rotation
matrix

void **glRotated**( GLdouble *angle*,

GLdouble *x*,
GLdouble *y*,
GLdouble *z* )

void **glRotatef**( GLfloat *angle*,

GLfloat *x*,
GLfloat *y*,
GLfloat *z* )

**eqn not supported**

*angle*
- Specifies the angle of rotation, in degrees.
*x*, *y*, *z*
- Specify the
*x*, *y*, and *z* coordinates of a vector, respectively.

**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:

**eqn
not supported**

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.

This rotation follows the right-hand
rule, so if the vector $("x", "y", "z")$ points toward the user, the rotation
will be counterclockwise.
**GL_INVALID_OPERATION** is generated if **glRotate**
is executed between the execution of **glBegin** and the corresponding execution
of **glEnd**.
**glGet** with argument **GL_MATRIX_MODE**

**glGet** with argument **GL_COLOR_MATRIX**

**glGet** with argument **GL_MODELVIEW_MATRIX**

**glGet** with argument **GL_PROJECTION_MATRIX**

**glGet** with argument **GL_TEXTURE_MATRIX**
**glMatrixMode(3G)**
, **glMultMatrix(3G)**
,
**glPushMatrix(3G)**
, **glScale(3G)**
, **glTranslate(3G)**

**Table of Contents**