glMapGrid: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
(Fehlermeldungen)
K (Kategorisierung, Link korrigiert)
 
(5 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
= glMapGrid =
 
= glMapGrid =
  
<br>
+
 
 +
 
 
== Name ==
 
== Name ==
'''glMapGrid''' - Erzeugt aus einer Funktion ein Punkte Reihe oder Gitter
+
'''glMapGrid''' - Erzeugt aus einer Funktion ein ein- oder zweidimensionales Punkte-Gitter.
 +
 
 +
 
  
<br>
 
 
== Delphi-Spezifikation ==
 
== Delphi-Spezifikation ==
  
Zeile 14: Zeile 16:
 
  procedure '''glMapGrid2f'''(''un'': TGLint; ''u1'': TGLfloat; ''u2'': TGLfloat;  
 
  procedure '''glMapGrid2f'''(''un'': TGLint; ''u1'': TGLfloat; ''u2'': TGLfloat;  
 
                       ''vn'': TGLint; ''v1'': TGLfloat; ''v2'': 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 wieviel Abschnitte die Kurve unterteil werden soll
+
| 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:
 
|}
 
|}
  
<br>
+
 
 +
 
  
 
== Beschreibung ==  
 
== Beschreibung ==  
'''glMapGrid''' und [[glEvalMesh]] werden gemeinsam genutzt um auf effiziente Art und Weise eine Serie von gleichmäßig verteilten Karten-Gebiets-Werten (engl.: map domain values) zu erstellen und auszuwerten.
+
'''glMapGrid''' und [[glEvalMesh]] werden gemeinsam genutzt, um auf effiziente Art und Weise Bézierkurven oder -flächen zu berechnen und zu rendern.
  
[[glEvalMesh]] läuft durch den Integer-Bereich eines ein- oder zweidimensionalen Gitters, dessen Ausdehnung das Gebiet der Auswertungskarten ist, die durch [[glMap1]] und [[glMap2]] festgelegt wurden.
+
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 wieviel (''u'' bzw. bei 2D auch ''v'') Punkte zwischen welchen Werten(''u1'' und ''u2'' bzw. auch zwischen ''v1'' und ''v2'') linear verteilt werden sollen. Die letzte Fehlende Wert für die Position der einzelnen Werte liefert die mit [[glMap1]] oder [[glMap2]] festgelegte Funktion.
+
'''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 Formelen ausdrück sieht dass dann so aus:
+
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
  
<br>
+
 
 +
 
  
 
== Fehlermeldungen ==
 
== Fehlermeldungen ==
'''GL_INVALID_VALUE''' wird generiert wenn weder ''un'' noch ''vn'' postiv sind<br>
+
'''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.  
+
 
 +
'''GL_INVALID_OPERATION''' wird generiert, wenn '''glMapGrid''' innerhalb eines [[glBegin]]-[[glEnd]]-Blocks aufgerufen wird.  
 +
 
  
  
<br>
 
  
 
==  Zugehörige Wertrückgaben ==
 
==  Zugehörige Wertrückgaben ==
[[glGet]] mit Token [[glGet#GL_MAP1_GRID_DOMAIN|GL_MAP1_GRID_DOMAIN]]<br>
+
[[glGet]] mit Token [[glGet#GL_MAP1_GRID_DOMAIN|GL_MAP1_GRID_DOMAIN]]
[[glGet]] mit Token [[glGet#GL_MAP2_GRID_DOMAIN|GL_MAP2_GRID_DOMAIN]]<br>
+
 
[[glGet]] mit Token [[glGet#GL_MAP1_GRID_SEGMENTS|GL_MAP1_GRID_SEGMENTS]]<br>
+
[[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]]
  
<br>
+
 
 +
 
  
 
== Siehe auch ==
 
== Siehe auch ==
Zeile 66: Zeile 77:
  
 
== Links ==
 
== Links ==
*[http://www.delphigl.com/script/do_show.php?name=curve&action=2 DGL Tutorial: Abseits eckiger Welten]
+
*[[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

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

Links