| Operatoren |
gen_contour_nurbs_xld — Erzeugen einer XLD Kontur anhand einer NURBS Kurve.
Der Operator gen_contour_nurbs_xld erzeugt eine XLD Kontur Contour, die eine NURBS-Kurve (nicht uniformer, rationaler B-Spline) approximiert. Eine NURBS-Kurve wird spezifiziert durch ihren Grad Degree, ihr Kontrollpolygon (Rows,Cols), ihren Gewichtsvektor Weights und ihren Knotenvektor Knots.
Der Grad Degree der Kurve bestimmt den Grad ihrer Differenzierbarkeit. Die Kurve liegt innerhalb der konvexen Hülle ihres Kontrollpolygons (Rows,Cols). Die Gewichte in Weights beschreiben, wie stark die Kurve von den jeweiligen Kontrollpunkten angezogen wird. Wird 'auto' als Gewichtsvektor Weights ausgewählt, erhalten alle Kontrollpunkte das gleiche Gewicht. Der Knotenvektor Knots beschreibt den Träger der Kurve und kann im Normalfall auf 'auto' gesetzt werden.
Die Genauigkeit der approximierenden Kontur Contour wird durch die Parameter MaxDistance und MaxError bestimmt. Ersterer ist die maximale Distanz von zwei aufeinanderfolgenden Punkten in der approximierenden Kontur Contour. Der zweite Parameter entspricht dem maximalen Abstand der Approximation Contour von der eigentlichen Kurve. Normalerweise muss die Approximation beide Bedingungen erfüllen, es ist aber möglich, durch Setzen des Wertes auf 'omit' eine der beiden Bedingungen wegzulassen. Je niedriger diese beiden Parameter gewählt werden, desto besser ist die Approximation der Kurve. Unabhängig von der Wahl der Parameter liegen alle Punkte der Kontur Contour genau auf der Kurve (bis auf numerische Ungenauigkeiten).
Definition
Eine NURBS Kurve C von Grad p is definiert durch
Eine NURBS-Kurve ist also definiert durch ihren Grad p (Degree), ihr Kontrollpolygon P_{0},...,P_{n-1} (Rows und Cols), ihren Gewichtsvektor w = (w_{0}, ..., w_{n-1}) (Weights) und ihren Knotenvektor u = (u_{0}, ..., u_{n+p}) (Knots).
Der Grad der Differenzierbarkeit der Kurve wird bestimmt durch p. Mindestens p+1 Kontrollpunkte werden benötigt, um eine gültige Kurve zu definieren. Der Knotenvektur u beschreibt den Träger der Kurve. Die Länge dieses Vektors muss genau n+p+1 betragen und die Einträge müssen monoton steigend sein. Jeder Eintrag u_{i} entspricht dem Knoten zwischen den beiden Kurvensegmenten [u_{i-1},u_{i}) und [u_{i},u_{i+1}). Jedes Kurvensegment [u_{i},u_{i+1}) liegt innerhalb der konvexen Hülle der Kontrollpunkte P_{i-p}, ..., P_{i}. Für jedes Intervall, dessen Länge null ist, sinkt der Grad der Differenzierbarkeit des Knotens k. Die Anzahl der Vorkommen eines Knotens im Knotenvektor wird als Multiplizität bezeichnet. Die maximale Multiplizität eines Knotens ist p. Ausnahme sind Start- und Endpunkt, deren Multiplizität p+1 betragen kann. Das ist auch die Regel, da in diesem Fall Start- und Endpunkt der Kurve im ersten bzw. letzten Punkt des Kontrollpolygons liegen. Falls Start- oder Endpunkt nicht volle Multiplizität besitzen, ist der Träger der Kurve auf das Intervall [u_{p},u_{n}] beschränkt. Die Gewichte w_{i} bestimmen den Einfluss der jeweiligen Kontrollpunkte P_{i} auf die Kurve.
Geschlossene Kurven. Sind Start- und Endpunkt gleich (P_{0} = P_{n-1}) und der Knotenvektor Knots auf 'auto' gesetzt, wird die Kurve automatisch geschlossen, so dass die Multiplizität aller Knoten eins ist. Falls ein Gewichtsvektor Weights angegeben wird, muss dessen Länge in diesem Fall n-1 betragen.
Die Kontur, die die Kurve approximiert.
Zeilenkoordinaten des Kontrollpolygons.
Parameteranzahl: Rows == Cols && Rows >= Degree + 1
Spaltenkoordinaten des Kontrollpolygons.
Parameteranzahl: Cols == Rows && Cols >= Degree + 1
Der Knotenvektor u.
Defaultwert: 'auto'
Wertevorschläge: 'auto'
Der Gewichtsvektor w.
Parameteranzahl: Weights == Rows
Defaultwert: 'auto'
Wertevorschläge: 'auto'
Restriktion: Weights > 0.0
Grad p der Kurve.
Defaultwert: 3
Wertevorschläge: 2, 3, 4, 5
Restriktion: Degree >= 2
Maximale Distanz zwischen Approximation und Kurve.
Defaultwert: 1.0
Wertevorschläge: 'omit', 1.0, 2.0, 3.0, 4.0, 5.0
Restriktion: MaxError > 0.0
Maximaler Abstand zweier aufeinander folgender Punkte in der approximierten Kontur Contour.
Defaultwert: 5.0
Wertevorschläge: 'omit', 1.0, 2.0, 3.0, 4.0, 5.0
Restriktion: MaxDistance > 0.0
* use a polygon XLD contour as control polygon and approximate * the NURBS curve as contour get_contour_xld(Polygon, Row, Col) gen_contour_nurbs_xld(NURBSContour, Row, Col, 'auto', 'auto', 3, 1.0, 10.0)
L. Piegl, W. Tiller: “The NURBS Book“, 2nd Edition, Springer, 1997.
Foundation
| Operatoren |