glMultMatrix: Unterschied zwischen den Versionen
K (Kategorisierung, Wikisysntax für Tabelle) |
(→Beschreibung) |
||
| Zeile 38: | Zeile 38: | ||
+- -+ | +- -+ | ||
| + | == Beispiel == | ||
| + | Das Modell wird um die Hälfte verkleinert. | ||
| + | |||
| + | <syntaxhighlight lang="pascal"> | ||
| + | type | ||
| + | TMatrix = array[0..3, 0..3] of glFloat; | ||
| + | const | ||
| + | ScaleMatrix: TMatrix = ((0.5, 0.0, 0.0, 0.0), (0.0, 0.5, 0.0, 0.0), (0.0, 0.0, 0.5, 0.0), (0.0, 0.0, 0.0, 1.0)); | ||
| + | |||
| + | begin | ||
| + | ... | ||
| + | glMatrixMode(GL_MODELVIEW); | ||
| + | glLoadIdentity(); | ||
| + | glMultMatrixf(@ScaleMatrix); | ||
| + | |||
| + | glBegin(GL_TRIANGLES); | ||
| + | ... | ||
| + | </syntaxhighlight> | ||
== Fehlermeldungen == | == Fehlermeldungen == | ||
Version vom 22. Juni 2018, 17:26 Uhr
Inhaltsverzeichnis
glMultMatrix
Name
glMultMatrix - multipliziert die aktuelle Matrix mit einer beliebigen Matrix.
Delphi-Spezifikation
procedure glMultMatrixd(const m: PGLdouble); procedure glMultMatrixf(const m: PGLfloat);
Parameter
| m | Ist ein Zeiger auf eine 4x4-Matrix, deren Werte spaltenweise als 16 Einzelwerte abgelegt sind. |
|---|
Beschreibung
glMultMatrix multipliziert die aktuelle Matrix mit der Matrix, auf die m zeigt.
Wenn M die aktuelle Matrix ist und T die, auf die m zeigt, dann bewirkt glMultMatrix: M := M*T
Die aktuelle Matrix ist entweder die Projektionsmatrix, die Modelviewmatrix oder die Texturmatrix. Dies hängt vom aktuellem Matrixmodus ab.
Der Parameter m zeigt auf eine 4x4-Matrix, die Fließkommazahlen von einfacher bzw. doppelter Genauigkeit enthält. Diese werden spaltenweise als 16 Einzelwerte abgelegt. Die Werte werden somit in folgender Reihenfolge gespeichert:
+- -+ | 0 4 8 12 | | 1 5 9 13 | | 2 6 10 14 | | 3 7 11 15 | +- -+
Beispiel
Das Modell wird um die Hälfte verkleinert.
type
TMatrix = array[0..3, 0..3] of glFloat;
const
ScaleMatrix: TMatrix = ((0.5, 0.0, 0.0, 0.0), (0.0, 0.5, 0.0, 0.0), (0.0, 0.0, 0.5, 0.0), (0.0, 0.0, 0.0, 1.0));
begin
...
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glMultMatrixf(@ScaleMatrix);
glBegin(GL_TRIANGLES);
...
Fehlermeldungen
GL_INVALID_OPERATION wird generiert, wenn glMultMatrix innerhalb eines glBegin-glEnd-Blocks 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