gl.Scale(x, y, z)
gl.Scale()
produces a nonuniform scaling along the x, y, and z axes. The three parameters indicate the desired
scale factor along each of the three axes.
The current matrix (See gl.MatrixMode for details.) is multiplied by this scale matrix, and the product replaces the current matrix as if gl.MultMatrix() were called with the following matrix as its argument:
x 0 0 0 0 y 0 0 0 0 z 0 0 0 0 1 |
If the matrix mode is either #GL_MODELVIEW
or #GL_PROJECTION
, all objects drawn after gl.Scale()
is called are scaled.
Use gl.PushMatrix() and gl.PopMatrix() to save and restore the unscaled coordinate system.
If scale factors other than 1 are applied to the modelview matrix and lighting is enabled, lighting often appears wrong. In
that case, enable automatic normalization of normals by calling gl.Enable() with the argument #GL_NORMALIZE
.
Please consult an OpenGL reference manual for more information.
#GL_INVALID_OPERATION
is generated if gl.Scale()
is executed between the execution of gl.Begin() and the corresponding execution of gl.End().
#GL_MATRIX_MODE
gl.Get() with argument #GL_MODELVIEW_MATRIX
gl.Get() with argument #GL_PROJECTION_MATRIX
gl.Get() with argument #GL_TEXTURE_MATRIX