| Operatoren |
draw_nurbs_mod — Interaktives Modifizieren einer NURBS-Kurve.
draw_nurbs_mod( : ContOut : WindowHandle, Rotate, Move, Scale, KeepRatio, Edit, Degree, RowsIn, ColsIn, WeightsIn : Rows, Cols, Weights)
draw_nurbs_mod liefert die Kontur ContOut und die Kontrollinformationen (Rows, Cols, and Weights) der NURBS-Kurve mit dem Grad Degree, die interaktiv durch den Benutzer im Fenster WindowHandle modifiziert 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, sollte dort der Knotenvektor Knots auf 'auto' gesetzt werden.
Die Eingabekurve wird durch ihr Kontrollpolygon RowsIn, ColsIn, ihren Gewichtsvektor WeightsIn und ihren Grad Degree beschrieben. Es wird angenommen, dass ihr Knotenvektor uniform ist (das entspricht 'auto' in gen_contour_nurbs_xld).
Die Kurve kann auf zwei Arten modifiziert werden: Durch Editieren, zum Beispiel durch Einfügen oder Verschieben von Kontrollpunkten, oder durch das Transformieren der Kurve als Ganzes, zum Beispiel durch Rotieren, Verschieben oder Skalieren. Die Kurve kann jedoch nur editiert werden, wenn der Parameter Edit auf 'true' gesetzt wurde. Die Parameter Rotate, Move und Scale müssen auf 'true' gesetzt werden, damit die entsprechende Bearbeitung durchgeführt werden kann. draw_nurbs_mod beginnt im Modus zum Transformieren. Durch Drücken der Umschalttaste kann in den Modus zum Editieren gewechselt werden; durch erneutes Drücken der Taste wechselt man zurück in den Modus zum Transformieren.
Transformieren
In diesem Modus kann die Kurve rotiert, verschoben und skaliert werden, jedoch nur, wenn der entsprechenden Parameter Rotate, Move und Scale auf 'true' gesetzt wurde. Die Kurve 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.
Zum Verschieben der Kurve klickt man mit der linken Maustaste auf das Kreuz in der Mitte und bewegt die Maus dann mit gedrückter Taste zur neuen Position.
Zum Rotieren der Kurve klickt man mit der linken Maustaste auf den Pfeil und bewegt die Maus anschließend mit gedrückter Taste solange, bis sich die Kurve in der gewünschten Lage befindet.
Zum Skalieren der Kurve muss der Doppelpfeil bewegt werden. Um das Seitenverhältnis beim Skalieren beizubehalten, muss der Parameter KeepRatio auf 'true' gesetzt werden.
Editieren
In diesem Modus wird die Kontur zusammen mit ihrem Kontrollpolygon dargestellt. Start- und Endpunkt sind mit einem zusätzlichen Quadrat markiert. Außerdem ist der Punkt, der als letztes angefasst wurde, von einem Kreis umgeben, der das Gewicht dieses Punktes visualisiert. Folgende Modifikationen können vorgenommen werden:
Um Punkte an das Kontrollpolygon anzuhängen, muss mit der linken Maustaste ins Fenster geklickt werden. Hierdurch wird ein neuer Punkt an dieser Position eingefügt.
Der zuletzt angehängte Punkt kann durch Drücken der Steuerungstaste (Strg, Ctrl) gelöscht werden.
Kontrollpunkte können durch Ziehen mit der Maus verschoben werden
Punkte auf dem Kontrollpolygon werden eingefügt, indem auf die gewünschte Stelle auf dem Kontrollpolygon geklickt wird.
Um die Kurve zu schließen bzw. zu öffnen muss auf den ersten oder letzten Punkt des Kontrollpolygons geklickt werden.
Das Gewicht eines Kontrollpunktes kann verändert werden, indem zuerst auf den Punkt geklickt wird (wenn der Gewichtskreis noch nicht angzeigt wird) und anschließend die Größe des Kreises um den Punkt durch Ziehen mit der Maus verändert wird.
Ein Klick mit der rechten Maustaste beendet die Prozedur. Unter macOS kann draw_nurbs_mod 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 modifizierten 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'
Editieren ermöglichen?
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 Eingabekontrollpolygons.
Spaltenkoordinaten des Eingabekontrollpolygons.
Eingabegewichtsvektor.
Zeilen Koordinaten des Kontrollpolygons.
Spalten Koordinaten des Kontrollpolygons.
Gewichtsvektor.
draw_nurbs_mod 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_interp_mod, draw_xld_mod
draw_nurbs, draw_nurbs_interp, gen_contour_nurbs_xld
Foundation
| Operatoren |