gluPartialDisk: Unterschied zwischen den Versionen
K (Trennlinien entfernt) |
DGLBot (Diskussion | Beiträge) K (Der Ausdruck ''<pascal>(.*?)</pascal>'' wurde ersetzt mit ''<source lang="pascal">$1</source>''.) |
||
(13 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
− | = | + | {{Excellent}} |
+ | = gluPartialDisk = | ||
+ | |||
+ | |||
− | |||
== Name == | == Name == | ||
− | ''' | + | '''gluPartialDisk''' - zeichnet einen Ausschnitt einer Scheibe. |
+ | |||
+ | |||
− | |||
== Delphi-Spezifikation == | == Delphi-Spezifikation == | ||
'''procedure''' gluPartialDisk(''quadObject'': PGLUquadric; | '''procedure''' gluPartialDisk(''quadObject'': PGLUquadric; | ||
Zeile 12: | Zeile 15: | ||
''startAngle'', ''sweepAngle'' : TGLdouble); | ''startAngle'', ''sweepAngle'' : TGLdouble); | ||
− | + | ||
+ | [[Bild:Partialdisk.jpg|framed|Partielle Disk mit Loch (innerRadius=1.0, outerRadius=2.0, slices=12, | ||
+ | loops=4, startAngle=0, sweepAngle=310)]] | ||
+ | |||
+ | |||
== Parameter == | == Parameter == | ||
<table border=1 rules=all> | <table border=1 rules=all> | ||
<tr> | <tr> | ||
<td>''quadObject''</td> | <td>''quadObject''</td> | ||
− | <td>Gibt das | + | <td>Gibt das [[Quadrik]]-Objekt an. (erstellt mit [[gluNewQuadric]])</td> |
</tr> | </tr> | ||
<tr> | <tr> | ||
Zeile 45: | Zeile 52: | ||
</table> | </table> | ||
− | + | ||
+ | |||
+ | |||
== Beschreibung == | == Beschreibung == | ||
Die Funktion '''gluPartialDisk''' rendert einen Ausschnitt einer Scheibe in der z = 0 Ebene. Ein Scheibenausschnitt ist ähnlich einer kompletten Scheibe mit dem Unterschied, dass sie nur einem Ab-/Ausschnitt der Scheibe darstellt. <br> | Die Funktion '''gluPartialDisk''' rendert einen Ausschnitt einer Scheibe in der z = 0 Ebene. Ein Scheibenausschnitt ist ähnlich einer kompletten Scheibe mit dem Unterschied, dass sie nur einem Ab-/Ausschnitt der Scheibe darstellt. <br> | ||
Zeile 109: | Zeile 118: | ||
</table> | </table> | ||
− | < | + | == Beispiel == |
+ | Um eine Partialdisk zu erzeugen die so aussieht wie im oben gezeigten Parameterbild muss folgendes getan werden: | ||
+ | |||
+ | <source lang="pascal"> | ||
+ | var q : PGLUquadric; | ||
+ | |||
+ | q := gluNewQuadric(); | ||
+ | gluPartialDisk(q, 1, 2, 12, 4, 0, 310); | ||
+ | gluDeleteQuadric(q); | ||
+ | </source> | ||
+ | |||
== Siehe auch == | == Siehe auch == | ||
[[gluCylinder]], [[gluDisk]], [[gluNewQuadric]], [[gluQuadricOrientation]], [[gluQuadricTexture]], [[gluSphere]] | [[gluCylinder]], [[gluDisk]], [[gluNewQuadric]], [[gluQuadricOrientation]], [[gluQuadricTexture]], [[gluSphere]] | ||
+ | |||
+ | [[Kategorie:GLU|PartialDisk]] |
Aktuelle Version vom 10. März 2009, 19:21 Uhr
(weitere exzellente Artikel) |
Inhaltsverzeichnis
gluPartialDisk
Name
gluPartialDisk - zeichnet einen Ausschnitt einer Scheibe.
Delphi-Spezifikation
procedure gluPartialDisk(quadObject: PGLUquadric; innerRadius, outerRadius: TGLdouble; slices, loops: TGLint; startAngle, sweepAngle : TGLdouble);
Parameter
quadObject | Gibt das Quadrik-Objekt an. (erstellt mit gluNewQuadric) |
innerRadius | Definiert den inneren Radius der Scheibe. (kann auch 0 sein.) |
outerRadius | Definiert den äußeren Radius der Scheibe. |
slices | Gibt die Anzahl der Unterteilungen um die Z-Achse an. (Vergl. Pizzastücke) |
loops | Gibt die Anzahl der konzentrischen Ringe um das Zentrum an, in welche die Scheibe unterteilt ist. |
startAngle | Definiert den Startwinkel des Scheibenausschnitts in Grad. |
sweepAngle | Definiert die Größe des Scheibenausschnitts in Grad. |
Beschreibung
Die Funktion gluPartialDisk rendert einen Ausschnitt einer Scheibe in der z = 0 Ebene. Ein Scheibenausschnitt ist ähnlich einer kompletten Scheibe mit dem Unterschied, dass sie nur einem Ab-/Ausschnitt der Scheibe darstellt.
Der Abschnitt beginnt bei startAngle und geht bis startAngle+sweepAngle.
Die Gradangaben sind so zu deuten:
Grad | Position im Koordinatensystem |
0 | pos. Y-Achse |
90 | pos. X-Achse |
180 | neg. Y-Achse |
270 | neg. X-Achse |
Der Scheibenabschnitt hat einen Radius von outerRadius und ein konzentrisches Loch mit dem Radius innerRadius.
Wenn innerRadius = 0 ist, wird kein Loch erstellt.
Der Scheibenabschnitt ist um die Z-Achse in Stücke unterteilt, die man sich wie Pizzastücke vorstellen kann, wobei die Z-Achse im Zentrum der Pizza (hier Scheibe) liegt.
Außerdem ist der Scheibenabschnitt noch in konzentrische Ringe aufgeteilt.
Die Anzahl der Ringe, aber auch der Stücke (wie sie über slices und loops angegeben werden) haben eine direkte Auswirkung auf die Wirkung des Ausschnitts bei angeschaltetem OpenGL-Licht (glLight). Je mehr es von beiden gibt, desto besser wirkt die Beleuchtung. (Nachteil: viele Polygone)
Die Orientierung des Ausschnitts ist so, dass die +z-Seite als Außenseite gilt (siehe gluQuadricOrientation). Das bedeutet, wenn die Orientierung auf GLU_OUTSIDE gesetzt wurde, zeigen die Normalen in Richtung der positiven Z-Achse, ansonsten in Richtung der negative Z-Achse.
Wenn mittels gluQuadricTexture Texturierung aktiviert ist, werden automatisch Texturkoordinaten in folgender Weise erstellt.
Wenn r = outerRadius dann gilt:
Koordinaten | Texture Koordinaten |
( r , 0.0, 0.0) | (1.0, 0.5) |
(0.0, -r , 0.0) | (0.5, 1.0) |
(-r , 0.0, 0.0) | (0.0, 0.5) |
(0.0, r , 0.0) | (0.5, 0.0) |
Beispiel
Um eine Partialdisk zu erzeugen die so aussieht wie im oben gezeigten Parameterbild muss folgendes getan werden:
var q : PGLUquadric;
q := gluNewQuadric();
gluPartialDisk(q, 1, 2, 12, 4, 0, 310);
gluDeleteQuadric(q);
Siehe auch
gluCylinder, gluDisk, gluNewQuadric, gluQuadricOrientation, gluQuadricTexture, gluSphere