glScale — multiply the current matrix by a general scaling matrix
void glScaled( | GLdouble | x, |
GLdouble | y, | |
GLdouble | z) ; |
void glScalef( | GLfloat | x, |
GLfloat | y, | |
GLfloat | z) ; |
glScale
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 glMatrixMode) is multiplied by this scale matrix, and the product replaces the current matrix as if glMultMatrix were called with the following matrix as its argument:
If the matrix mode is either GL_MODELVIEW
or GL_PROJECTION
, all objects drawn after glScale
is called are scaled.
Use glPushMatrix and glPopMatrix 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 glEnable with the argument GL_NORMALIZE
.
GL_INVALID_OPERATION
is generated if glScale
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
Copyright © 1991-2006 Silicon Graphics, Inc. This document is licensed under the SGI Free Software B License. For details, see https://web.archive.org/web/20171022161616/http://oss.sgi.com/projects/FreeB/.