| Operatoren |
draw_nurbs_interp_mod — Interaktives Modifizieren einer NURBS-Kurve durch Interpolation.
draw_nurbs_interp_mod( : ContOut : WindowHandle, Rotate, Move, Scale, KeepRatio, Edit, Degree, RowsIn, ColsIn, TangentsIn : ControlRows, ControlCols, Knots, Rows, Cols, Tangents)
draw_nurbs_interp_mod liefert die Kontur ContOut einer NURBS-Kurve, die interaktiv durch den Benutzer im Fenster WindowHandle durch Interpolation modifiziert worden ist.
Zusätzlich zu ContOut werden die Kontrollinformation der Kurve (ControlRows,ControlCols und Knots), die vom Benutzer bestimmten Interpolationspunkte (Rows und Cols) und die Tangenten im ersten und letzten Punkt der Kurve (Tangents) zurückgegeben. Tangents besteht aus den Y- (Zeilen) und X- (Spalten) Werten der Tangente im Startpunkt, gefolgt von den beiden Werten der Tangente im Endpunkt der Kurve.
Ein Gewichtsvektor wird nicht zurückgegeben, da dieser aus gleichen Einträgen besteht. Das heißt, dass 'auto' als Gewichtsvektor verwendet werden kann, wenn die Kontrollinformationen im Operator gen_contour_nurbs_xld verwendet werden. Mehr Informationen über NURBS-Kurven befinden sich in der Dokumentation des Operators gen_contour_nurbs_xld.
Die Eingabekurve wird durch die Interpolationspunkte RowsIn, ColsIn, den Grad Degree und die Tangenten TangentsIn beschrieben, so dass draw_nurbs_interp_mod mit den Ausgabedaten des Operators draw_nurbs_interp verwendet werden kann.
Die Kurve kann auf zwei Arten modifiziert werden: Durch Editieren, zum Beispiel durch Einfügen oder Verschieben von Punkten, oder durch das Transformieren der Kurve als Ganzes, zum Beispiel durch Rotieren, Verschieben oder Skalieren. Die Kontur 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_interp_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, 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 linke 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 Kurve zusammen mit den Interpolationspunkten, der Starttangente und der Endtangente dargestellt. Start- und Endpunkt sind mit einem zusätzlichen Quadrat markiert. Folgende Modifikationen können vorgenommen werden.
Um Punkte 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.
Punkte können durch Ziehen mit der Maus verschoben werden.
Neue Punkte auf der Kurve werden eingefügt, indem auf die gewünschte Stelle auf der Kurve geklickt wird.
Um die Kurve zu schließen bzw. zu öffnen, muss auf den ersten oder letzten Punkt geklickt werden.
Die Tangenten können verändert werden, indem ihr Ende mit der Maus verschoben wird.
Ein Klick mit der rechten Maustaste beendet die Prozedur. Unter macOS kann draw_nurbs_interp_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. Die Tangenten 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.
Im Gegensatz zu draw_nurbs hat jeder Punkt, der vom Nutzer vorgegeben wird, Einfluss auf die ganze Kurve. Wird ein Punkt bewegt, kann und wird sich die ganze Kurve ändern. Um diesen Effekt zu minimieren, empfehlen wir die Verwendung eines niedrigen Grades (3-5). Im Allgemeinen sind die Ergebnisse bei ungeradem Grad etwas besser als bei geradem. Außerdem ist es vorteilhaft, die Abstände aufeinanderfolgender Punkte ungefähr gleich zu wählen.
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 5.
Defaultwert: 3
Wertevorschläge: 2, 3, 4, 5
Restriktion: Degree >= 2 && Degree <= 9
Zeilenkoordinaten der Eingabeinterpolationspunkte.
Spaltenkoordinaten der Eingabeinterpolationspunkte.
Eingabetangenten.
Zeilenkoordinaten des Kontrollpolygons.
Spaltenkoordinaten des Kontrollpolygons
Knotenvektor.
Zeilenkoordinaten der vom Benutzer bestimmten Punkte.
Spaltenkoordinaten der vom Benutzer bestimmten Punkte.
Vom Benutzer bestimmte Tangenten.
draw_nurbs_interp_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, gen_contour_nurbs_xld
Foundation
| Operatoren |