Pike v8.0 release 1738

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.