2.0 3.0 > comp > gb.opengl > gl > rotatef
Previous  Next  Edit  Rename  Undo  Search  Administration
 Documentation
Warning! This page is not translated.  See english version
Gl.Rotatef (gb.opengl)
`Static Sub Rotatef ( Angle As Float, X As Float, Y As Float, Z As Float )`

Multiply the current matrix by a rotation matrix.

### Parameters

angle

Specifies the angle of rotation, in degrees.

x, y, z

Specify the x, y, and z coordinates of a vector, respectively.

### Description

Gl.Rotate produces a rotation of angle degrees around the vector $\left(\mathit{x},\mathit{y},\mathit{z}\right)$. The current matrix (see Gl.MatrixMode) is multiplied by a rotation matrix with the product replacing the current matrix, as if Gl.MultMatrix were called with the following matrix as its argument:

$\left(\begin{array}{cccc}{\mathit{x}}^{2}\left(1-\mathit{c}\right)+\mathit{c}& \mathit{x}\mathit{y}\left(1-\mathit{c}\right)-\mathit{z}\mathit{s}& \mathit{x}\mathit{z}\left(1-\mathit{c}\right)+\mathit{y}\mathit{s}& 0\\ \mathit{y}\mathit{x}\left(1-\mathit{c}\right)+\mathit{z}\mathit{s}& {\mathit{y}}^{2}\left(1-\mathit{c}\right)+\mathit{c}& \mathit{y}\mathit{z}\left(1-\mathit{c}\right)-\mathit{x}\mathit{s}& 0\\ \mathit{x}\mathit{z}\left(1-\mathit{c}\right)-\mathit{y}\mathit{s}& \mathit{y}\mathit{z}\left(1-\mathit{c}\right)+\mathit{x}\mathit{s}& {\mathit{z}}^{2}\left(1-\mathit{c}\right)+\mathit{c}& 0\\ 0& 0& 0& 1\end{array}\right)$

Where $\mathit{c}=\mathit{cos}\left(\mathit{angle}\right)$, $\mathit{s}=\mathit{sin}\left(\mathit{angle}\right)$, and $∥\left(\mathit{x},\mathit{y},\mathit{z}\right)∥=1$ (if not, the GL will normalize this vector).

If the matrix mode is either Gl.MODELVIEW or Gl.PROJECTION, all objects drawn after Gl.Rotate is called are rotated. Use Gl.PushMatrix and Gl.PopMatrix to save and restore the unrotated coordinate system.

### Notes

This rotation follows the right-hand rule, so if the vector $\left(\mathit{x},\mathit{y},\mathit{z}\right)$ points toward the user, the rotation will be counterclockwise.

### Errors

Gl.INVALID_OPERATION is generated if Gl.Rotate is executed between the execution of Gl.Begin and the corresponding execution of Gl.End.

### Associated Gets

Gl.Get with argument Gl.MATRIX_MODE

Gl.Get with argument Gl.COLOR_MATRIX

Gl.Get with argument Gl.MODELVIEW_MATRIX

Gl.Get with argument Gl.PROJECTION_MATRIX

Gl.Get with argument Gl.TEXTURE_MATRIX

### See also

Gl.MatrixMode, Gl.MultMatrix, Gl.PushMatrix, Gl.Scale, Gl.Translate