# Method GL.glRotate()

- Method
**glRotate** `void`

**glRotate(**`float`

|`int`

|`array`

(`float`

|`int`

)`angle`

,`float`

|`int`

|`void`

`x`

,`float`

|`int`

|`void`

`y`

,`float`

|`int`

|`void`

`z`

**)**- 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:.ce .EQ left ( ~ down 20 matrix { ccol { "x" "x" (1 - c)+ c above "y" "x" (1 - c)+ "z" s above "x" "z" (1 - c)-"y" s above ~0 } ccol {"x" "y" (1 - c)-"z" s above "y" "y" (1 - c)+ c above "y" "z" (1 - c)+ "x" s above ~0 } ccol { "x" "z" (1 - c)+ "y" s above "y" "z" (1 - c)- "x" s above "z" "z" (1 - c) + c above ~0 } ccol { ~0 above ~0 above ~0 above ~1} } ~~ right ) .EN

.sp Where c ~=~ cos("angle"), s ~=~ sine("angle"), and ||(~"x", "y", "z"~)|| ~=~ 1 (if not, the GL will normalize this vector). .sp .sp

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.

- Parameter
`angle`

Specifies the angle of rotation, in degrees.

- Parameter
`x`

Specify the

*x*,*y*, and*z*coordinates of a vector, respectively.- Throws
GL_INVALID_OPERATION is generated if glRotate is executed between the execution of glBegin and the corresponding execution of glEnd.