| Operatoren |
draw_nurbs — Interaktives Erstellen einer NURBS-Kurve.
draw_nurbs liefert die Kontur ContOut und Kontrollinformationen (Rows, Cols und Weights) einer NURBS-Kurve, die interaktiv durch den Benutzer im Fenster WindowHandle erzeugt worden ist. Zusätzliche Informationen über NURBS-Kurven finden sich in der Dokumentation des Operators gen_contour_nurbs_xld. Um die Kontrollinformationen Rows, Cols und Weights in einem Aufruf des Operators gen_contour_nurbs_xld zu verwenden, muss dort der Knotenvektor Knots auf 'auto' gesetzt werden.
Die NURBS-Kurve wird durch Manipulation ihres Kontrollpolygons gezeichnet. Dagegen wird die NURBS-Kurve mit dem Operator draw_nurbs_interp durch Interpolation von Stützstellen (die interaktiv manipuliert werden können) erzeugt. Direkt nach dem Aufruf von draw_nurbs kann man durch Drücken der linken Maustaste Punkte zum Kontrollpolygon hinzufügen. Der zuletzt angehängte Punkt kann durch Drücken der Steuerungstaste (Strg, Ctrl) gelöscht werden. Sobald das Kontrollpolygon aus 3 Punkten besteht, werden der erste und der letzte Punkt mit einem zusätzlichen Quadrat markiert. Durch Klicken auf den ersten oder letzten Kontrollpunkt wird die Kurve geschlossen bzw. wieder geöffnet. Sobald mehr als Degree Kontrollpunkte vorhanden sind, wird die NURBS-Kurve angezeigt, die durch das Kontrollpolygon und die Gewichte bestimmt ist.
Der zuletzt angefasste Kontrollpunkt wird von einem Kreis umgeben, der das Gewicht dieses Punktes visualisiert. Die Größe des Kreises und damit das Gewicht kann durch Ziehen der Kreislinie mit der Maus verändert werden.
Bestehende Kontrollpunkte können mit gedrückter Maustaste verschoben werden. Außerdem können neue Punkte auf dem Kontrollpolygon eingefügt werden (um dieses zu verfeinern), indem mit der Maus auf die gewünschte Stelle auf dem Kontrollpolygon geklickt wird.
Durch Drücken der Umschalttaste kann in den Modus zum Transformieren der Kurve gewechselt werden. In diesem Modus kann die Kontur rotiert, verschoben und skaliert werden, jedoch nur, wenn der entsprechende Parameter (Rotate, Move, Scale auf 'true' gesetzt wurde. Die Kontur wird zusammen mit einem Kreuz in der Mitte, einem Pfeil nach rechts, falls Rotate auf 'true' gesetzt wurde, und einem Doppelpfeil, falls Scale auf 'true' gesetzt wurde, dargestellt.
Die Kurve kann
verschoben werden, indem man mit der linke Maustaste auf das Kreuz im Mittelpunkt klickt und dann die Kurve an die neue Position schiebt.
rotiert werden, indem man mit der linken Maustaste auf den Pfeil klickt und die Maus bewegt bis die Kurve die gewünschte Lage eingenommen hat.
skaliert werden, indem der Doppelpfeil verschoben wird. Um das Seitenverhältnis beim Skalieren beizubehalten, muss der Parameter KeepRatio auf 'true' gesetzt werden.
Durch ein weiteres Drücken der Umschalttaste wechselt man zurück in den Editiermodus. Ein Klick mit der rechten Maustaste beendet die Prozedur. Unter macOS kann draw_nurbs auch durch Drücken der Escape-Taste beendet werden.
Das Aussehen der Kurve beim Zeichnen wird durch die Linienbreite, den Linienstil und die Farbe bestimmt, die mit den Operatoren set_color, set_colored, set_line_width und set_line_style gesetzt werden können. Das Kontrollpolygon und alle Anfasser werden in der zweiten Farbe gezeichnet, die via set_color oder set_colored gesetzt wurde. Ihre Linienbreite ist fest auf 1 gesetzt, außerdem werden ihre Linien durchgezogen gezeichnet.
Kontur der NURBS-Kurve.
Fenster-Handle.
Rotation ermöglichen?
Defaultwert: 'true'
Werteliste: 'false', 'true'
Verschieben ermöglichen?
Defaultwert: 'true'
Werteliste: 'false', 'true'
Skalieren ermöglichen?
Defaultwert: 'true'
Werteliste: 'false', 'true'
Seitenverhältnis beim Skalieren beibehalten?
Defaultwert: 'true'
Werteliste: 'false', 'true'
Grad p der Kurve. Vernünftige Werte liegen zwischen 3 und 25.
Defaultwert: 3
Wertevorschläge: 2, 3, 4, 5
Restriktion: Degree >= 2
Zeilenkoordinaten des Kontrollpolygons.
Spaltenkoordinaten des Kontrollpolygons.
Gewichtsvektor.
draw_nurbs liefert den Wert 2 (H_MSG_TRUE), falls das Fenster gültig ist. Ansonsten wird eine Fehlerbehandlung durchgeführt.
set_colored, set_line_width, set_draw, set_insert
draw_nurbs_mod, draw_nurbs_interp, gen_contour_nurbs_xld
Foundation
| Operatoren |