glEvalMesh2-Funktion
Berechnet ein zweidimensionales Raster von Punkten oder Linien.
void WINAPI glEvalMesh2(
GLenum mode,
GLint i1,
GLint i2,
GLint j1,
GLint j2
);
-
mode
-
Ein -Wert, der angibt, ob ein zweidimensionales Gitter aus Punkten, Linien oder Polygonen berechnet werden soll. Die folgenden symbolischen Konstanten werden akzeptiert: GL_POINT, GL_LINE und GL_FILL.
-
i1
-
Der erste ganzzahlige Wert für die Rasterdomänenvariable i.
-
i2
-
Der letzte ganzzahlige Wert für die Rasterdomänenvariable i.
-
j1
-
Der erste ganzzahlige Wert für die Rasterdomänenvariable j.
-
j2
-
Der letzte ganzzahlige Wert für die Rasterdomänenvariable j.
Diese Funktion gibt keinen Wert zurück.
Die folgenden Fehlercodes können von der glGetError-Funktion abgerufen werden.
Name | Bedeutung |
---|---|
|
Gibt an, dass der Modus kein akzeptierter Wert ist. |
|
Die Funktion wurde zwischen einem Aufruf von glBegin und dem entsprechenden Aufruf von glEnd aufgerufen. |
Verwenden Sie glMapGrid und glEvalMesh zusammen, um effizient eine Reihe von Kartendomänenwerten mit gleichmäßigem Abstand zu generieren und auszuwerten. Die glEvalMesh-Funktion durchläuft die Ganzzahldomäne eines ein- oder zweidimensionalen Rasters, dessen Bereich die Domäne der von glMap1 und glMap2 angegebenen Auswertungszuordnungen ist. Der mode-Parameter bestimmt, ob die resultierenden Scheitelpunkte als Punkte, Linien oder gefüllte Polygone verbunden sind.
Im zweidimensionalen Fall glEvalMesh2, let
? u = (u2 u1)/n
? v = (v2 v1)/m,
Dabei sind n, u1, u2, m, v1 und v2 die Argumente für die neueste glMapGrid2-Funktion . Wenn der Modus GL_FILL ist, entspricht glEvalMesh2 folgendem:
for (j = j1; j < j2; j += 1)
{
glBegin(GL_QUAD_STRIP);
for (i = i1; i <= i2; i += 1)
{
glEvalCoord2(i? u + u1 ( ) , j ? v + v1);
glEvalCoord2(i? u + u1 ( ) , (j+1) ? v + v1);
}
glEnd( ); }
Wenn der Modus GL_LINE ist, entspricht ein Aufruf von glEvalMesh2 folgendem:
for (j = j1; j <= j2; j += 1)
{
glBegin(GL_LINE_STRIP);
for (i = i1; i <= i2; i += 1)
{
glEvalCoord2(i? u + u1, j? v + v1);
}
glEnd( );
}
for (i = i1; i <= i2; i += 1)
{
glBegin(GL_LINE_STRIP);
for (j = j1; j <= j1; j += 1)
{
glEvalCoord2(i? u + u1, j? v + v1);
}
glEnd( );
}
Wenn der Modus GL_POINT ist, entspricht ein Aufruf von glEvalMesh2 folgendem:
glBegin(GL_POINTS);
for (j = j1; j <= j2; j += 1)
{
for (i = i1; i <= i2; i += 1)
{
glEvalCoord2(i? u + u1, j? v + v1);
}
}
glEnd( );
In allen drei Fällen bestehen die einzigen absoluten numerischen Anforderungen darin, dass, wenn i = n, der aus i berechnete Wert? u + u1 ist genau u2, und wenn j = m, dann der wert berechnet aus j? v + v1 ist genau v2. Die folgenden Funktionen rufen Informationen zu glEvalMesh ab:
glGet mit argument GL_MAP1_GRID_DOMAIN
glGet mit argument GL_MAP2_GRID_DOMAIN
glGet mit argument GL_MAP1_GRID_SEGMENTS
glGet mit argument GL_MAP2_GRID_SEGMENTS
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) |
Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) |
Windows 2000 Server [nur Desktop-Apps] |
Header |
|
Bibliothek |
|
DLL |
|