glMapGrid: Unterschied zwischen den Versionen
Flo (Diskussion | Beiträge) (Artikel erstellt) |
K (Kategorisierung, Link korrigiert) |
||
(8 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
= glMapGrid = | = glMapGrid = | ||
− | + | ||
+ | |||
== Name == | == Name == | ||
− | '''glMapGrid''' - Erzeugt aus einer Funktion ein Punkte | + | '''glMapGrid''' - Erzeugt aus einer Funktion ein ein- oder zweidimensionales Punkte-Gitter. |
+ | |||
+ | |||
− | |||
== Delphi-Spezifikation == | == Delphi-Spezifikation == | ||
− | + | procedure '''glMapGrid1d'''(''un'': TGLint; ''u1'': TGLdouble; ''u2'': TGLdouble); | |
− | procedure glMapGrid1f(un: TGLint; u1: TGLfloat; u2: TGLfloat); | + | procedure '''glMapGrid1f'''(''un'': TGLint; ''u1'': TGLfloat; ''u2'': TGLfloat); |
− | procedure glMapGrid2d(un: TGLint; u1: TGLdouble; u2: TGLdouble; | + | procedure '''glMapGrid2d'''(''un'': TGLint; ''u1'': TGLdouble; ''u2'': TGLdouble; |
− | + | ''vn'': TGLint; ''v1'': TGLdouble; ''v2'': TGLdouble); | |
− | procedure glMapGrid2f(un: TGLint; u1: TGLfloat; u2: TGLfloat; | + | procedure '''glMapGrid2f'''(''un'': TGLint; ''u1'': TGLfloat; ''u2'': TGLfloat; |
− | + | ''vn'': TGLint; ''v1'': TGLfloat; ''v2'': TGLfloat); | |
+ | |||
+ | |||
== Parameter == | == Parameter == | ||
Zeile 19: | Zeile 23: | ||
{| border="1" rules="all" | {| border="1" rules="all" | ||
! ''un'' | ! ''un'' | ||
− | | Gibt an in | + | | Gibt an, in wie viele Abschnitte die Kurve unterteilt werden soll |
|- | |- | ||
! ''u1, u2'' | ! ''u1, u2'' | ||
Zeile 25: | Zeile 29: | ||
|- | |- | ||
! ''vn'' | ! ''vn'' | ||
− | | Gibt die Anzahl an Kurven an aus denen sich die Fläche zusammensetzt (nur glMapGrid2) | + | | Gibt die Anzahl an Kurven an, aus denen sich die Fläche zusammensetzt (nur glMapGrid2) |
|- | |- | ||
! ''v1, v2'' | ! ''v1, v2'' | ||
Zeile 31: | Zeile 35: | ||
|} | |} | ||
− | + | ||
+ | |||
== Beschreibung == | == Beschreibung == | ||
− | '''glMapGrid''' und [[glEvalMesh]] werden gemeinsam genutzt um auf effiziente Art und Weise | + | '''glMapGrid''' und [[glEvalMesh]] werden gemeinsam genutzt, um auf effiziente Art und Weise Bézierkurven oder -flächen zu berechnen und zu rendern. |
− | [[ | + | Nachdem mit [[glMap1]] oder [[glMap2]] die Kontrollpunkte einer Bézierkurve oder -fläche festgelegt wurden, errechnet '''glMapGrid''' daraus ein ein- oder zweidimensionales Punktegitter mit gleichmäßig verteilten Punkten, welches danach mit [[glEvalMesh]] gezeichnet werden kann. |
− | glMapGrid1 und glMapGrid2 legen fest | + | '''glMapGrid1''' und '''glMapGrid2''' legen fest, wie viele (''u'' bzw. bei 2D auch ''v'') Punkte zwischen welchen Werten (''u1'' und ''u2'' bzw. auch zwischen ''v1'' und ''v2'') linear verteilt werden sollen. Die letzten fehlenden Werte für die Position der einzelnen Werte liefert die mit [[glMap1]] oder [[glMap2]] festgelegte Funktion. |
− | In | + | In Formeln ausgedrückt sieht das dann so aus: |
u = i(u2 - u1) / un + u1 | u = i(u2 - u1) / un + u1 | ||
v = j(v2 - v1) / vn + v1 | v = j(v2 - v1) / vn + v1 | ||
− | + | ||
+ | |||
+ | |||
== Fehlermeldungen == | == Fehlermeldungen == | ||
− | '''GL_INVALID_VALUE''' wird generiert wenn weder ''un'' noch ''vn'' postiv sind | + | '''GL_INVALID_VALUE''' wird generiert, wenn weder ''un'' noch ''vn'' postiv sind. |
− | '''GL_INVALID_OPERATION''' wird generiert wenn | + | |
+ | '''GL_INVALID_OPERATION''' wird generiert, wenn '''glMapGrid''' innerhalb eines [[glBegin]]-[[glEnd]]-Blocks aufgerufen wird. | ||
+ | |||
− | |||
== Zugehörige Wertrückgaben == | == Zugehörige Wertrückgaben == | ||
− | [[glGet]] mit Token [[glGet#GL_MAP1_GRID_DOMAIN|GL_MAP1_GRID_DOMAIN]] | + | [[glGet]] mit Token [[glGet#GL_MAP1_GRID_DOMAIN|GL_MAP1_GRID_DOMAIN]] |
− | [[glGet]] mit Token [[glGet#GL_MAP2_GRID_DOMAIN|GL_MAP2_GRID_DOMAIN]] | + | |
− | [[glGet]] mit Token [[glGet#GL_MAP1_GRID_SEGMENTS|GL_MAP1_GRID_SEGMENTS]] | + | [[glGet]] mit Token [[glGet#GL_MAP2_GRID_DOMAIN|GL_MAP2_GRID_DOMAIN]] |
+ | |||
+ | [[glGet]] mit Token [[glGet#GL_MAP1_GRID_SEGMENTS|GL_MAP1_GRID_SEGMENTS]] | ||
+ | |||
[[glGet]] mit Token [[glGet#GL_MAP2_GRID_SEGMENTS|GL_MAP2_GRID_SEGMENTS]] | [[glGet]] mit Token [[glGet#GL_MAP2_GRID_SEGMENTS|GL_MAP2_GRID_SEGMENTS]] | ||
− | + | ||
+ | |||
== Siehe auch == | == Siehe auch == | ||
Zeile 65: | Zeile 77: | ||
== Links == | == Links == | ||
− | *[ | + | *[[Tutorial Abseits eckiger Welten|DGL Tutorial: Abseits eckiger Welten]] |
[[Kategorie:GL|MapGrid]] | [[Kategorie:GL|MapGrid]] | ||
+ | [[Kategorie:GL1.0|MapGrid]] |
Aktuelle Version vom 28. Juli 2011, 22:53 Uhr
Inhaltsverzeichnis
glMapGrid
Name
glMapGrid - Erzeugt aus einer Funktion ein ein- oder zweidimensionales Punkte-Gitter.
Delphi-Spezifikation
procedure glMapGrid1d(un: TGLint; u1: TGLdouble; u2: TGLdouble); procedure glMapGrid1f(un: TGLint; u1: TGLfloat; u2: TGLfloat); procedure glMapGrid2d(un: TGLint; u1: TGLdouble; u2: TGLdouble; vn: TGLint; v1: TGLdouble; v2: TGLdouble); procedure glMapGrid2f(un: TGLint; u1: TGLfloat; u2: TGLfloat; vn: TGLint; v1: TGLfloat; v2: TGLfloat);
Parameter
un | Gibt an, in wie viele Abschnitte die Kurve unterteilt werden soll |
---|---|
u1, u2 | Legt die Werte für i=0 und i=un fest.(siehe glEvalMesh) |
vn | Gibt die Anzahl an Kurven an, aus denen sich die Fläche zusammensetzt (nur glMapGrid2) |
v1, v2 | Legt die Werte für j=0 und j=un fest. (nur glMapGrid2) |
Beschreibung
glMapGrid und glEvalMesh werden gemeinsam genutzt, um auf effiziente Art und Weise Bézierkurven oder -flächen zu berechnen und zu rendern.
Nachdem mit glMap1 oder glMap2 die Kontrollpunkte einer Bézierkurve oder -fläche festgelegt wurden, errechnet glMapGrid daraus ein ein- oder zweidimensionales Punktegitter mit gleichmäßig verteilten Punkten, welches danach mit glEvalMesh gezeichnet werden kann.
glMapGrid1 und glMapGrid2 legen fest, wie viele (u bzw. bei 2D auch v) Punkte zwischen welchen Werten (u1 und u2 bzw. auch zwischen v1 und v2) linear verteilt werden sollen. Die letzten fehlenden Werte für die Position der einzelnen Werte liefert die mit glMap1 oder glMap2 festgelegte Funktion.
In Formeln ausgedrückt sieht das dann so aus:
u = i(u2 - u1) / un + u1 v = j(v2 - v1) / vn + v1
Fehlermeldungen
GL_INVALID_VALUE wird generiert, wenn weder un noch vn postiv sind.
GL_INVALID_OPERATION wird generiert, wenn glMapGrid innerhalb eines glBegin-glEnd-Blocks aufgerufen wird.
Zugehörige Wertrückgaben
glGet mit Token GL_MAP1_GRID_DOMAIN
glGet mit Token GL_MAP2_GRID_DOMAIN
glGet mit Token GL_MAP1_GRID_SEGMENTS
glGet mit Token GL_MAP2_GRID_SEGMENTS
Siehe auch
glEvalCoord, glEvalMesh, glEvalPoint, glMap1, glMap2