glScale: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
K (Beschreibung)
(Beschreibung)
Zeile 22: Zeile 22:
 
== Beschreibung ==
 
== Beschreibung ==
 
[[Bild:Tutorial Matrix2 Scale.png|344px|thumb|right|''Auf Bild klicken zum vergrößern'']]
 
[[Bild:Tutorial Matrix2 Scale.png|344px|thumb|right|''Auf Bild klicken zum vergrößern'']]
Die Funktion '''glScale''' bewirkt eine Verzerrung oder Spiegelung des Koordinatensystems. Hierfür wird eine Skalierungsmatrix mit der [[glMatrixMode|aktuellen]] [[Matrix]] multipliziert.<br>
+
 
 +
Die Funktion '''glScale''' bewirkt eine Verzerrung oder Spiegelung des Koordinatensystems.  
 +
 
 +
Hierfür wird eine Skalierungsmatrix mit der [[glMatrixMode|aktuellen]] [[Matrix]] multipliziert.<br>
 
Die Skalierungsmatrix sieht so aus:
 
Die Skalierungsmatrix sieht so aus:
 
<pre>
 
<pre>
Zeile 31: Zeile 34:
 
</pre>
 
</pre>
 
wobei x, y, z den übergebenen Parametern entspricht.
 
wobei x, y, z den übergebenen Parametern entspricht.
 +
 
<br>
 
<br>
  

Version vom 22. April 2006, 18:04 Uhr

glScale


Name

glScale - bewirkt eine Verzerrung oder Spiegelung des Koordinatensystems.

Delphi-Spezifikation

procedure glScaled(x, y, z: TGLdouble);
procedure glScalef(x, y, z: TGLfloat);


Parameter

x, y, z Die einzelnen Parameter bestimmen die Verzerrung für die einzelnen Achsen


Beschreibung

Auf Bild klicken zum vergrößern

Die Funktion glScale bewirkt eine Verzerrung oder Spiegelung des Koordinatensystems.

Hierfür wird eine Skalierungsmatrix mit der aktuellen Matrix multipliziert.
Die Skalierungsmatrix sieht so aus:

  | x  0  0  0 |
  | 0  y  0  0 |
  | 0  0  z  0 |
  | 0  0  0  1 |

wobei x, y, z den übergebenen Parametern entspricht.


Hinweise

Es sollte um jeden Preis vermieden werden, eine Achse auf 0 zu skalieren (x,y und z immer <> 0.0)! Dies führt dazu, dass die aktuelle Matrix singulär wird und Funktionen wie gluProject sowie gluUnProject nicht mehr korrekt funktionieren.

Fehlermeldungen

GL_INVALID_OPERATION wird generiert wenn glScale zwischen einem glBegin und dem zugehörigen glEnd aufgerufen wird.

Zugehörige Wertrückgaben

glGet mit Token GL_MATRIX_MODE
glGet mit Token GL_MODELVIEW_MATRIX
glGet mit Token GL_PROJECTION_MATRIX
glGet mit Token GL_TEXTURE_MATRIX

Beispiele

Glscale normal.png Ein ganz normaler Würfel der keinerlei Skalierung erfahren hat.
Entspricht:glScale(1,1,1);
Glscale scaledx.png Der gleiche Würfel, der diesmal entlang der X-Achse gestreckt wurde.
Entspricht:glScale(3,1,1);
Glscale invert.png Der vorrige Würfel, der nun auch entlang der Y-Achse invertiert wurde.
Entspricht:glScale(3,-1,1);


Weitere Beispiele bei Tutorial Matrix2.

Siehe auch

glLoadMatrix, glMatrixMode, glMultMatrix, glPushMatrix, glRotate, glTranslate