gl.Scale(x, y, z)
gl.Scale()
erzeugt eine ungleichmäßige Skalierung entlang der x-, y- und
z-Achse. Die drei Parameter geben den gewünschten Skalierungsfaktor entlang
jeder der drei Achsen an.
Die aktuelle Matrix (siehe gl.MatrixMode()) wird mit dieser Skalenmatrix multipliziert und das Produkt ersetzt die aktuelle Matrix, als würde gl.MultMatrix() mit der folgenden Matrix als Argument aufgerufen:
x 0 0 0 0 y 0 0 0 0 z 0 0 0 0 1 |
Wenn der Matrixmodus entweder #GL_MODELVIEW
oder #GL_PROJECTION
ist, werden
alle nach dem Aufruf von gl.Scale()
gezeichneten Objekte skaliert.
Verwenden Sie gl.PushMatrix() und gl.PopMatrix(), um das nicht skalierte Koordinatensystem zu speichern und wiederherzustellen.
Wenn andere Skalierungsfaktoren als 1 auf die Modellsichtmatrix angewendet
werden und die Beleuchtung aktiviert ist, erscheint die Beleuchtung oft
falsch. In diesem Fall aktivieren Sie die automatische Normalisierung von
Normalen, indem Sie gl.Enable() mit dem
Argument #GL_NORMALIZE
aufrufen.
Weitere Informationen finden Sie in einem OpenGL-Referenzhandbuch.
#GL_INVALID_OPERATION
wird erzeugt, wenn gl.Scale()
zwischen
gl.Begin() und gl.End() ausgeführt wird.
#GL_MATRIX_MODE
gl.Get() mit dem Argument #GL_MODELVIEW_MATRIX
gl.Get() mit dem Argument #GL_PROJECTION_MATRIX
gl.Get() mit dem Argument #GL_TEXTURE_MATRIX