Freigeben über


gluNurbsCurve-Funktion

Die Funktion gluNurbsCurve definiert die Form einer nicht uniformen rationalen B-Spline-Kurve (NURBS).

Syntax

void WINAPI gluNurbsCurve(
   GLUnurbs *nobj,
   GLint    nknots,
   GLfloat  *knot,
   GLint    stride,
   GLfloat  *ctlarray,
   GLint    order,
   GLenum   type
);

Parameter

nobj

Das NURBS-Objekt (erstellt mit gluNewNurbsRenderer).

nknots

Die Anzahl der Knoten im Knoten. Der nknots-Parameter entspricht der Anzahl der Kontrollpunkte plus der Reihenfolge.

Knoten

Ein Array von nknots-Knotenwerten , die nicht dekrementiert werden.

Schritt

Der Offset (als Anzahl von Gleitkommawerten mit einfacher Genauigkeit) zwischen aufeinander folgenden Kurvensteuerungspunkten.

ctlarray

Ein Zeiger auf ein Array von Kontrollpunkten. Die Koordinaten müssen mit dem Typ übereinstimmen.

order

Die Reihenfolge der NURBS-Kurve. Der Order-Parameter ist gleich grad + 1; Daher hat eine kubische Kurve eine Reihenfolge von 4.

type

Der Typ der Kurve. Wenn diese Kurve innerhalb eines gluBeginCurve/gluEndCurve-Paars definiert ist, kann der Typ einer der gültigen eindimensionalen Evaluatortypen sein (z. B. GL_MAP1_VERTEX_3 oder GL_MAP1_COLOR_4). Zwischen einem gluBeginTrim/gluEndTrim-Paar sind die einzigen gültigen Typen GLU_MAP1_TRIM_2 und GLU_MAP1_TRIM_3.

Rückgabewert

Diese Funktion gibt keinen Wert zurück.

Bemerkungen

Wenn gluNurbsCurve zwischen einem gluBeginCurve/gluEndCurve-Paar angezeigt wird, beschreibt dies eine zu renderde Kurve. Sie ordnen Positions-, Textur- und Farbkoordinaten zu, indem Sie jede als separate gluNurbsCurve zwischen einem gluBeginCurve/gluEndCurve-Paar darstellen. Führen Sie nicht mehr als einen Aufruf von gluNurbsCurve für Farb-, Positions- und Texturdaten innerhalb eines einzelnen gluBeginCurve/gluEndCurve-Paars durch. Führen Sie genau einen Aufruf aus, um die Position der Kurve (eine Art von GL_MAP1_VERTEX_3 oder GL_MAP1_VERTEX_4) zu beschreiben.

Wenn gluNurbsCurve zwischen einem gluBeginTrim/gluEndTrim-Paar angezeigt wird, beschreibt es eine Trimmkurve auf einer NURBS-Oberfläche. Wenn type GLU_MAP1_TRIM_2 ist, beschreibt er eine Kurve im zweidimensionalen Parameterraum (u und v). Wenn es GLU_MAP1_TRIM_3 ist, beschreibt es eine Kurve im zweidimensionalen homogenen Parameterraum (u, v und w). Weitere Informationen zum Kürzen von Kurven finden Sie unter gluBeginTrim.

Beispiele

Die folgenden Funktionen rendern eine texturierte NURBS-Kurve mit Normaldaten:

gluBeginCurve(nobj); 
    gluNurbsCurve(nobj, ..., GL_MAP1_TEXTURE_COORD_2); 
    gluNurbsCurve(nobj, ..., GL_MAP1_NORMAL); 
    gluNurbsCurve(nobj, ..., GL_MAP1_VERTEX_4);  
gluEndCurve(nobj); 

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows 2000 Server [nur Desktop-Apps]
Header
Glu.h
Bibliothek
Glu32.lib
DLL
Glu32.dll

Weitere Informationen

gluBeginCurve

gluBeginTrim

gluEndCurve

gluEndTrim

gluNewNurbsRenderer

gluPwlCurve