Eine NURBS-Kurve. Siehe auch: die animierte Erstellung eines NURBS-Splines .
grün schattierte NURBS-Fläche
Eine NURBS-Fläche

Nicht-uniforme rationale Basis-Splines ( NURBS ) sind ein mathematisches Modell, das auf Basis-Splines (B-Splines) basiert und in der Computergrafik häufig zur Darstellung von Kurven und Flächen verwendet wird . Es bietet hohe Flexibilität und Präzision für die Bearbeitung sowohl analytischer (durch gängige mathematische Formeln definierter ) als auch modellierter Formen . Im Gegensatz zur Polygonmodellierung oder digitalen Bildhauerei handelt es sich um eine Art der Kurvenmodellierung . NURBS-Kurven werden häufig in der computergestützten Konstruktion (CAD), Fertigung (CAM) und im Engineering (CAE) eingesetzt. Sie sind Bestandteil zahlreicher branchenweiter Standards wie IGES , STEP , ACIS und PHIGS . Werkzeuge zum Erstellen und Bearbeiten von NURBS - Flächen sind in verschiedenen 3D - Grafik- , Rendering- und Animationssoftwarepaketen enthalten .

Sie lassen sich effizient von Computerprogrammen verarbeiten und ermöglichen gleichzeitig eine einfache menschliche Interaktion. NURBS-Flächen sind Funktionen zweier Parameter , die eine Fläche im dreidimensionalen Raum abbilden . Die Form der Fläche wird durch Kontrollpunkte bestimmt . In kompakter Form können NURBS-Flächen einfache geometrische Formen darstellen . Für komplexe organische Formen eignen sich T-Splines und Unterteilungsflächen besser, da sie die Anzahl der Kontrollpunkte im Vergleich zu NURBS-Flächen halbieren.

Die Bearbeitung von NURBS-Kurven und -Flächen ist im Allgemeinen intuitiv und vorhersehbar. Kontrollpunkte sind entweder direkt mit der Kurve oder Fläche verbunden oder verhalten sich wie durch ein Gummiband zusammengehalten. Je nach Benutzeroberfläche kann die Bearbeitung von NURBS-Kurven und -Flächen über ihre Kontrollpunkte (ähnlich wie bei Bézierkurven ) oder über übergeordnete Werkzeuge wie Spline-Modellierung und hierarchische Bearbeitung erfolgen .

Geschichte

Eine flache Spline-Kurve , das physikalische Pendant zur mathematischen Spline-Kurve . Hier wird die Spline-Kurve durch Stifte anstatt durch Enten fixiert.

Vor dem Computerzeitalter wurden Entwürfe von Hand auf Papier mit verschiedenen Zeichengeräten angefertigt . Lineale dienten für gerade Linien, Zirkel für Kreise und Winkelmesser für Winkel. Viele Formen, wie beispielsweise die natürliche Kurve eines Schiffsbugs, ließen sich mit diesen Werkzeugen jedoch nicht zeichnen.

Obwohl solche Kurven freihändig am Zeichenbrett gezeichnet werden konnten, benötigten Schiffbauer oft eine maßstabsgetreue Darstellung, die nicht von Hand angefertigt werden konnte. Solche großen Zeichnungen wurden mithilfe flexibler Holzleisten, sogenannter Splines, erstellt. Die Splines wurden an mehreren vorgegebenen Punkten durch Bleikeile, sogenannte „Enten“, fixiert. Diese Bleikeile verdanken ihren Namen dem schnabelförmigen Vorsprung, an dem die Leisten anlagen. Zwischen den Bleikeilen bewirkte die Elastizität des Leistenmaterials, dass die Leiste die Form annahm, die die Biegeenergie minimierte und so eine möglichst glatte, den Anforderungen entsprechende Form erzeugte. Die Form konnte durch Verschieben der Bleikeile angepasst werden. [ 2 ] [ 3 ]

1964 begannen Mathematiker, die Spline-Form zu untersuchen und leiteten die stückweise polynomische Formel ab, die als Spline-Kurve oder Spline-Funktion bekannt ist. I. J. Schoenberg gab der Spline-Funktion ihren Namen aufgrund ihrer Ähnlichkeit mit der von technischen Zeichnern verwendeten mechanischen Spline-Schiene. [ 4 ]

Mit dem Einzug von Computern in den Entwicklungsprozess wurden die physikalischen Eigenschaften solcher Splines untersucht, um sie mathematisch präzise modellieren und bei Bedarf reproduzieren zu können. Pionierarbeit leisteten in Frankreich der Renault -Ingenieur Pierre Bézier und der Citroën -Physiker und Mathematiker Paul de Casteljau . Sie arbeiteten nahezu parallel, doch da Bézier seine Ergebnisse veröffentlichte, wurden die Bézierkurven nach ihm benannt, während de Casteljaus Name nur mit verwandten Algorithmen in Verbindung gebracht wird.

Béziers Arbeit erreichte eine Gruppe von Dozenten und Doktoranden an der Syracuse University, darunter Steven Anson Coons , William Gordon, Robin Forrest, Rich Riesenfeld und Ken Versprille. Riesenfelds Dissertation führte B-Splines ein ; Versprilles Dissertation verallgemeinerte sie zu nicht-uniformen und rationalen Funktionen. [ 5 ] Riesenfeld wechselte an die University of Utah, wo einer seiner Studenten später bei Boeing arbeitete . Boeing benötigte eine verallgemeinerte Methode zur exakten Darstellung verschiedener anderer Formeln. [ 6 ] Boeing übernahm Versprilles Konzept, kürzte es zu „NURBS“ ab, integrierte es in sein CAD- Programm TIGER und schlug es als Industriestandard vor. [ 7 ]

Die interaktive Echtzeitdarstellung von NURBS-Kurven und -Flächen wurde erstmals 1989 auf Silicon Graphics- Workstations kommerziell verfügbar gemacht. 1993 wurde der erste interaktive NURBS-Modellierer für PCs, genannt NöRBS, von CAS Berlin entwickelt, einem kleinen Start-up-Unternehmen in Zusammenarbeit mit der Technischen Universität Berlin .

Kontinuität

Eine im Bau befindliche Oberfläche, beispielsweise der Rumpf einer Motoryacht, besteht üblicherweise aus mehreren NURBS-Flächen, sogenannten NURBS-Patches (oder einfach Patches ). Diese Flächen-Patches müssen so aneinandergefügt werden, dass die Ränder unsichtbar sind. Mathematisch wird dies durch das Konzept der geometrischen Stetigkeit ausgedrückt .

Es gibt übergeordnete Werkzeuge, die von der Fähigkeit von NURBS profitieren, geometrische Kontinuität auf verschiedenen Ebenen zu erzeugen und herzustellen:

Positionskontinuität
(G 0 ) gilt immer dann, wenn die Endpunkte zweier Kurven oder Flächen übereinstimmen. Die Kurven oder Flächen können sich dennoch in einem Winkel treffen, wodurch eine scharfe Ecke oder Kante entsteht und unterbrochene Glanzlichter verursacht werden.
Tangentiale Kontinuität
(G¹) verlangt, dass die Endvektoren der Kurven oder Flächen parallel verlaufen und in dieselbe Richtung zeigen, wodurch scharfe Kanten ausgeschlossen werden. Da Glanzlichter auf einer tangential stetigen Kante stets stetig sind und somit natürlich wirken, ist diese Stetigkeit oft ausreichend.
Stetigkeit der Krümmung
(G²) erfordert weiterhin, dass die Endvektoren die gleiche Länge und Änderungsrate aufweisen. Glanzlichter, die auf eine krümmungsstetige Kante fallen, zeigen keine Veränderung, wodurch die beiden Flächen als eine erscheinen. Dies kann visuell als „perfekt glatt“ wahrgenommen werden. Diese Stetigkeit ist sehr nützlich für die Erstellung von Modellen, die viele bikubische Flächenstücke erfordern, welche eine stetige Fläche bilden.

Geometrische Stetigkeit bezieht sich hauptsächlich auf die Form der resultierenden Oberfläche; da NURBS-Flächen Funktionen sind, können auch die Ableitungen der Oberfläche nach den Parametern betrachtet werden. Dies wird als parametrische Stetigkeit bezeichnet . Parametrische Stetigkeit eines bestimmten Grades impliziert geometrische Stetigkeit desselben Grades.

Die parametrische Stetigkeit erster und zweiter Stufe (C₀ und C¹) ist praktisch identisch mit der Positions- und Tangentialstetigkeit (G₀ und G¹). Die parametrische Stetigkeit dritter Stufe (C²) unterscheidet sich jedoch von der Krümmungsstetigkeit dadurch, dass ihre Parametrisierung ebenfalls stetig ist. In der Praxis lässt sich die C²-Stetigkeit leichter erreichen, wenn uniforme B-Splines verwendet werden.

Die Definition der C <sup>n </sup>-Stetigkeit erfordert, dass die n -te Ableitung benachbarter Kurven/Flächen an einem Knotenpunkt gleich ist. [ 8 ] Beachten Sie, dass die (partiellen) Ableitungen von Kurven und Flächen Vektoren mit Richtung und Betrag sind; beide müssen gleich sein.

Glanzlichter und Reflexionen können die perfekte Glättung sichtbar machen, die ohne NURBS-Flächen mit mindestens G²-Stetigkeit praktisch unmöglich zu erreichen ist. Dasselbe Prinzip wird bei einer Oberflächenbewertungsmethode angewendet: Ein per Raytracing oder Reflexionsmessung erstelltes Bild einer Oberfläche mit darauf reflektierenden weißen Streifen zeigt selbst kleinste Abweichungen auf einer oder mehreren Oberflächen. Diese Methode stammt aus der Automobilentwicklung, wo die Oberflächenqualität anhand der Reflexionen einer Neonbeleuchtung an der Fahrzeugdecke überprüft wird. Sie ist auch als „Zebra-Analyse“ bekannt.

Technische Spezifikationen

Eine NURBS-Kurve wird durch ihre Ordnung, eine Menge gewichteter Kontrollpunkte und einen Knotenvektor definiert. [ 9 ] NURBS-Kurven und -Flächen sind Verallgemeinerungen sowohl von B-Splines als auch von Bézierkurven und -Flächen; der Hauptunterschied besteht in der Gewichtung der Kontrollpunkte, wodurch NURBS-Kurven rational werden .

( Nichtrationale , auch einfache B-Splines genannt, sind ein Spezialfall/eine Teilmenge rationaler B-Splines, bei denen jeder Kontrollpunkt eine reguläre, nicht-homogene Koordinate [ohne 'w'] anstelle einer homogenen Koordinate ist . [ 10 ] Dies entspricht dem Gewicht „1“ an jedem Kontrollpunkt; rationale B-Splines verwenden das 'w' jedes Kontrollpunkts als Gewicht . [ 11 ] )

Mithilfe eines zweidimensionalen Gitters von Kontrollpunkten lassen sich NURBS-Flächen, darunter ebene Flächen und Kugelabschnitte, erzeugen. Diese werden mit zwei Variablen parametrisiert (typischerweise s und t oder u und v genannt ). Das Verfahren lässt sich auf beliebige Dimensionen erweitern, um NURBS-Abbildungen zu erstellen .

NURBS-Kurven und -Flächen sind aus mehreren Gründen nützlich:

  • Die Menge der NURBS für eine gegebene Ordnung ist invariant unter affinen Transformationen: [ 12 ] Operationen wie Rotationen und Translationen können auf NURBS-Kurven und -Flächen angewendet werden, indem man sie auf ihre Kontrollpunkte anwendet.
  • Sie bieten eine gemeinsame mathematische Formel sowohl für Standard-Analyseformen (z. B. Kegelschnitte ) als auch für Freiformformen.
  • Sie bieten die Flexibilität, eine große Vielfalt an Formen zu gestalten.
  • Sie reduzieren den Speicherverbrauch beim Speichern von Formen (im Vergleich zu einfacheren Methoden).
  • Sie können mithilfe numerisch stabiler und genauer Algorithmen hinreichend schnell ausgewertet werden .

Hier wird NURBS hauptsächlich in einer Dimension (Kurven) diskutiert; es kann aber auch auf zwei (Flächen) oder sogar mehr Dimensionen verallgemeinert werden.

Befehl

Die Ordnung einer NURBS-Kurve definiert die Anzahl der nahegelegenen Kontrollpunkte, die einen beliebigen Punkt auf der Kurve beeinflussen. Mathematisch wird die Kurve durch ein Polynom vom Grad eins kleiner als ihre Ordnung dargestellt. Daher werden Kurven zweiter Ordnung (die durch lineare Polynome dargestellt werden) als lineare Kurven, Kurven dritter Ordnung als quadratische Kurven und Kurven vierter Ordnung als kubische Kurven bezeichnet. Die Anzahl der Kontrollpunkte muss mindestens so groß sein wie die Ordnung der Kurve.

In der Praxis werden am häufigsten kubische Kurven verwendet. Kurven fünfter und sechster Ordnung sind mitunter nützlich, insbesondere zur Bestimmung stetiger Ableitungen höherer Ordnung. Kurven höherer Ordnung werden jedoch praktisch nie eingesetzt, da sie zu internen numerischen Problemen führen und unverhältnismäßig lange Rechenzeiten erfordern.

Kontrollpunkte

Dreidimensionale NURBS-Flächen können komplexe, organische Formen aufweisen. Kontrollpunkte beeinflussen die Ausrichtung der Fläche. Ein separates Quadrat unterhalb des Kontrollkäfigs grenzt die X- und Y-Ausdehnung der Fläche ab.

Die Kontrollpunkte bestimmen die Form der Kurve. [ 13 ] Typischerweise wird jeder Punkt der Kurve als gewichtete Summe mehrerer Kontrollpunkte berechnet. Das Gewicht jedes Punktes variiert mit dem bestimmenden Parameter. Bei einer Kurve vom Grad d ist das Gewicht eines Kontrollpunktes nur in d+1 Intervallen des Parameterraums ungleich null . Innerhalb dieser Intervalle ändert sich das Gewicht gemäß einer Polynomfunktion ( Basisfunktionen ) vom Grad d. An den Intervallgrenzen streben die Basisfunktionen stetig gegen null, wobei die Stetigkeit vom Grad des Polynoms abhängt.

Beispielsweise ist die Basisfunktion ersten Grades eine Dreiecksfunktion. Sie steigt von null auf eins und fällt dann wieder auf null. Während sie steigt, fällt die Basisfunktion des vorherigen Kontrollpunktes. Auf diese Weise interpoliert die Kurve zwischen den beiden Punkten, und die resultierende Kurve ist ein Polygon, das stetig , aber an den Intervallgrenzen (Knoten) nicht differenzierbar ist . Polynome höheren Grades haben entsprechend stetigere Ableitungen. Innerhalb des Intervalls bewirkt die polynomische Natur der Basisfunktionen und die Linearität der Konstruktion, dass die Kurve vollkommen glatt ist; Unstetigkeiten können daher nur an den Knoten auftreten.

In vielen Anwendungen ist die Tatsache, dass ein einzelner Kontrollpunkt nur die Intervalle beeinflusst, in denen er aktiv ist, eine äußerst wünschenswerte Eigenschaft, die als lokale Unterstützung bekannt ist . In der Modellierung ermöglicht sie die Änderung eines Teils einer Oberfläche, während andere Teile unverändert bleiben.

Durch Hinzufügen weiterer Kontrollpunkte lässt sich eine gegebene Kurve besser annähern, allerdings kann nur eine bestimmte Kurvenklasse mit einer endlichen Anzahl von Kontrollpunkten exakt dargestellt werden. NURBS-Kurven verwenden zudem für jeden Kontrollpunkt ein skalares Gewicht . Dies ermöglicht eine präzisere Steuerung der Kurvenform, ohne die Anzahl der Kontrollpunkte unnötig zu erhöhen. Insbesondere erweitert es die Menge der exakt darstellbaren Kurven um Kegelschnitte wie Kreise und Ellipsen. Der Begriff „rational“ in NURBS bezieht sich auf diese Gewichte.

The control points can have any dimensionality. One-dimensional points just define a scalar function of the parameter. These are typically used in image processing programs to tune the brightness and color curves. Three-dimensional control points are used abundantly in 3D modeling, where they are used in the everyday meaning of the word 'point', a location in 3D space. Multi-dimensional points might be used to control sets of time-driven values, e.g. the different positional and rotational settings of a robot arm. NURBS surfaces are just an application of this. Each control 'point' is actually a full vector of control points, defining a curve. These curves share their degree and the number of control points, and span one dimension of the parameter space. By interpolating these control vectors over the other dimension of the parameter space, a continuous set of curves is obtained, defining the surface.

Knot vector

The knot vector is a sequence of parameter values that determines where and how the control points affect the NURBS curve. The number of knots is always equal to the number of control points plus curve degree plus one (i.e. number of control points plus curve order). The knot vector divides the parametric space in the intervals mentioned before, usually referred to as knot spans. Each time the parameter value enters a new knot span, a new control point becomes active, while an old control point is discarded. It follows that the values in the knot vector should be in nondecreasing order, so (0, 0, 1, 2, 3, 3) is valid while (0, 0, 2, 1, 3, 3) is not.

Consecutive knots can have the same value. This then defines a knot span of zero length, which implies that two control points are activated at the same time (and of course two control points become deactivated). This has impact on continuity of the resulting curve or its higher derivatives; for instance, it allows the creation of corners in an otherwise smooth NURBS curve. A number of coinciding knots is sometimes referred to as a knot with a certain multiplicity. Knots with multiplicity two or three are known as double or triple knots. The multiplicity of a knot is limited to the degree of the curve; since a higher multiplicity would split the curve into disjoint parts and it would leave control points unused. For first-degree NURBS, each knot is paired with a control point.

The knot vector usually starts with a knot that has multiplicity equal to the order. This makes sense, since this activates the control points that have influence on the first knot span. Similarly, the knot vector usually ends with a knot of that multiplicity. Curves with such knot vectors start and end in a control point.

The values of the knots control the mapping between the input parameter and the corresponding NURBS value. For example, if a NURBS describes a path through space over time, the knots control the time that the function proceeds past the control points. For the purposes of representing shapes, however, only the ratios of the difference between the knot values matter; in that case, the knot vectors (0, 0, 1, 2, 3, 3) and (0, 0, 2, 4, 6, 6) produce the same curve. The positions of the knot values influences the mapping of parameter space to curve space. Rendering a NURBS curve is usually done by stepping with a fixed stride through the parameter range. By changing the knot span lengths, more sample points can be used in regions where the curvature is high. Another use is in situations where the parameter value has some physical significance, for instance if the parameter is time and the curve describes the motion of a robot arm. The knot span lengths then translate into velocity and acceleration, which are essential to get right to prevent damage to the robot arm or its environment. This flexibility in the mapping is what the phrase non uniform in NURBS refers to.

Necessary only for internal calculations, knots are usually not helpful to the users of modeling software. Therefore, many modeling applications do not make the knots editable or even visible. It's usually possible to establish reasonable knot vectors by looking at the variation in the control points. More recent versions of NURBS software (e.g., Autodesk Maya and Rhinoceros 3D) allow for interactive editing of knot positions, but this is significantly less intuitive than the editing of control points.

Construction of the basis functions

The B-spline basis functions used in the construction of NURBS curves are usually denoted as , in which corresponds to the -th control point, and corresponds with the degree of the basis function.[14] The parameter dependence is frequently left out, so we can write . The definition of these basis functions is recursive in . The degree-0 functions are piecewiseconstant functions. They are one on the corresponding knot span and zero everywhere else. Effectively, is a linear interpolation of and . The latter two functions are non-zero for knot spans, overlapping for knot spans. The function is computed as

From top to bottom: Linear basis functions (blue) and (green) (top), their weight functions and (middle) and the resulting quadratic basis function (bottom). The knots are 0, 1, 2, and 2.5.

Die Funktion steigt linear von null auf eins im Intervall, in dem sie ungleich null ist, während sie von eins auf null fällt . Wie bereits erwähnt, ist eine Dreiecksfunktion, die über zwei Knotenspannweiten ungleich null ist, wobei sie auf der ersten Spannweite von null auf eins ansteigt und auf der zweiten auf null fällt. Basisfunktionen höherer Ordnung sind über entsprechend mehr Knotenspannweiten ungleich null und haben entsprechend einen höheren Grad. Ist der Parameter und der -te Knoten, so lassen sich die Funktionen und als und schreiben. Die Funktionen und sind positiv, wenn die entsprechenden Basisfunktionen niedrigerer Ordnung ungleich null sind. Durch Induktion über n folgt, dass die Basisfunktionen für alle Werte von und nichtnegativ sind . Dies macht die Berechnung der Basisfunktionen numerisch stabil.

Erneut lässt sich durch vollständige Induktion beweisen, dass die Summe der Basisfunktionen für einen bestimmten Parameterwert gleich Eins ist. Dies ist als Zerlegung der Eins der Basisfunktionen bekannt.

Lineare Basisfunktionen
Quadratische Basisfunktionen

Die Abbildungen zeigen die linearen und quadratischen Basisfunktionen für die Knoten {..., 0, 1, 2, 3, 4, 4.1, 5.1, 6.1, 7.1, ...}

Ein Knotenpunkt ist deutlich kürzer als die anderen. Auf diesem Knotenpunkt ist der Scheitelpunkt der quadratischen Basisfunktion ausgeprägter und erreicht nahezu den Wert eins. Umgekehrt fallen die benachbarten Basisfunktionen schneller gegen null ab. Geometrisch interpretiert bedeutet dies, dass sich die Kurve dem entsprechenden Kontrollpunkt stark annähert. Im Falle eines Doppelknotens wird die Länge des Knotenpunkts null, und der Scheitelpunkt erreicht exakt den Wert eins. Die Basisfunktion ist an diesem Punkt nicht mehr differenzierbar. Die Kurve weist eine scharfe Ecke auf, wenn die benachbarten Kontrollpunkte nicht auf einer Geraden liegen.

Allgemeine Form einer NURBS-Kurve

Unter Verwendung der Definitionen der Basisfunktionen aus dem vorherigen Absatz nimmt eine NURBS-Kurve die folgende Form an: [ 14 ]

Hierbei ist die Anzahl der Kontrollpunkte und sind die zugehörigen Gewichte. Der Nenner ist ein Normierungsfaktor, der den Wert eins annimmt, wenn alle Gewichte eins sind. Dies lässt sich aus der Zerlegung der Eins durch die Basisfunktionen ableiten. Üblicherweise schreibt man dies als , wobei die Funktionen als rationale Basisfunktionen bezeichnet werden .

Allgemeine Form einer NURBS-Fläche

Eine NURBS-Fläche erhält man als Tensorprodukt zweier NURBS-Kurven, wobei man zwei unabhängige Parameter und (mit den Indizes und ) verwendet: [ 14 ] mit als rationalen Basisfunktionen.

Manipulation von NURBS-Objekten

Motoryacht- Design unter Verwendung von NURBS-Flächen

Auf ein NURBS-Objekt lassen sich verschiedene Transformationen anwenden. Beispielsweise kann eine Kurve, die mit einem bestimmten Grad und N Kontrollpunkten definiert ist, mit demselben Grad und N+1 Kontrollpunkten dargestellt werden. Dabei ändern einige Kontrollpunkte ihre Position, und im Knotenvektor wird ein Knoten eingefügt. Diese Manipulationen werden häufig im interaktiven Design eingesetzt. Beim Hinzufügen eines Kontrollpunkts sollte die Kurvenform erhalten bleiben, da dieser als Ausgangspunkt für weitere Anpassungen dient. Einige dieser Operationen werden im Folgenden erläutert. [ 14 ] [ 15 ]

Knoteneinfügung

Wie der Name schon sagt, fügt die Knoteneinfügung einen Knoten in den Knotenvektor ein. Ist der Grad der Kurve , werden die Kontrollpunkte durch neue ersetzt. Die Form der Kurve bleibt dabei unverändert.

Ein Knoten kann bis zur maximalen Knotenmultiplizität mehrfach eingefügt werden. Dies wird mitunter als Knotenverfeinerung bezeichnet und kann durch einen Algorithmus erreicht werden, der effizienter ist als das wiederholte Einfügen von Knoten.

Knotenentfernung

Das Entfernen von Knoten ist der umgekehrte Vorgang des Einfügens von Knoten. Ziel ist es, Knoten und die zugehörigen Kontrollpunkte zu entfernen, um eine kompaktere Darstellung zu erzielen. Dies ist natürlich nicht immer möglich, ohne die exakte Kurvenform zu verändern. In der Praxis wird daher eine Toleranz für die Genauigkeit verwendet, um zu entscheiden, ob ein Knoten entfernt werden kann. Der Vorgang dient der Bereinigung nach einer interaktiven Sitzung, in der Kontrollpunkte manuell hinzugefügt wurden, oder nach dem Import einer Kurve aus einer anderen Darstellung, bei der eine einfache Konvertierung zu redundanten Kontrollpunkten führt.

Höhengrad

Eine NURBS-Kurve eines bestimmten Grades lässt sich stets durch eine NURBS-Kurve höheren Grades darstellen. Dies wird häufig beim Kombinieren separater NURBS-Kurven verwendet, beispielsweise beim Erstellen einer NURBS-Fläche durch Interpolation zwischen mehreren NURBS-Kurven oder beim Vereinheitlichen benachbarter Kurven. Dabei müssen die verschiedenen Kurven auf denselben Grad gebracht werden, üblicherweise auf den höchsten Grad der Kurvengruppe. Dieser Vorgang wird als Graderhöhung bezeichnet .

Krümmung

Die wichtigste Eigenschaft in der Differentialgeometrie ist die Krümmung . Sie beschreibt die lokalen Eigenschaften (Kanten, Ecken usw.) und die Beziehungen zwischen der ersten und zweiten Ableitung und somit die genaue Kurvenform. Sind die Ableitungen bestimmt, lässt sich die Bogenlänge aus der zweiten Ableitung leicht berechnen oder annähern . Die direkte Berechnung der Krümmung mithilfe dieser Gleichungen ist der große Vorteil parametrisierter Kurven gegenüber ihren polygonalen Darstellungen.

Beispiel: ein Kreis

NURBS-Kurven können Kreise exakt beschreiben. Das schwarze Dreieck stellt das Kontrollpolygon einer NURBS-Kurve dar (siehe w=1). Die blaue gestrichelte Linie zeigt das entsprechende Kontrollpolygon einer B-Spline-Kurve in homogenen 3D-Koordinaten , das durch Multiplikation der NURBS-Kontrollpunkte mit den zugehörigen Gewichten entsteht. Die blauen Parabeln bilden die entsprechende B-Spline-Kurve in 3D und bestehen aus drei Parabeln. Durch die Wahl der NURBS-Kontrollpunkte und -Gewichte verlaufen die Parabeln parallel zur gegenüberliegenden Fläche des grauen Kegels (dessen Spitze im 3D-Ursprung liegt). Die Projektion der Parabeln auf die Ebene w =1 durch Division durch w ergibt Kreisbögen (roter Kreis; siehe Kegelschnitt ).

Nichtrationale Splines oder Bézierkurven können einen Kreis annähern, ihn aber nicht exakt darstellen. Rationale Splines hingegen können jeden Kegelschnitt – einschließlich des Kreises – exakt abbilden. Diese Darstellung ist nicht eindeutig, eine Möglichkeit wird im Folgenden erläutert:

XyzGewicht
1001
110
0101
-110
-1001
-1-10
0-101
1-10
1001

Die Ordnung ist drei, da ein Kreis eine quadratische Kurve ist und die Ordnung des Splines um eins höher ist als der Grad seiner stückweise polynomialen Segmente. Der Knotenvektor ist . Der Kreis besteht aus vier Viertelkreisen, die durch Doppelknoten miteinander verbunden sind. Obwohl Doppelknoten in einer NURBS-Kurve dritter Ordnung normalerweise zu einem Verlust der Stetigkeit der ersten Ableitung führen würden, sind die Kontrollpunkte so positioniert, dass die erste Ableitung stetig ist. Tatsächlich ist die Kurve überall unendlich oft differenzierbar, wie es sein muss, wenn sie exakt einen Kreis darstellt.

Die Kurve stellt einen Kreis exakt dar, ist aber nicht exakt durch die Bogenlänge parametrisiert. Das bedeutet beispielsweise, dass der Punkt bei nicht bei liegt (außer dem Anfangs-, Mittel- und Endpunkt jedes Viertelkreises, da die Darstellung symmetrisch ist). Dies wäre unmöglich, da die x- Koordinate des Kreises einen exakten rationalen Polynomausdruck für liefern würde , was nicht möglich ist. Der Kreis vollführt zwar eine vollständige Umdrehung, wenn sein Parameter von 0 bis variiert wird , dies liegt jedoch nur daran, dass der Knotenvektor willkürlich als Vielfaches von gewählt wurde .

Siehe auch

Referenzen

  1. ^ „Warum KeyShot zur beliebtesten Software für Produktrendering wurde“ . 3. Oktober 2022.
  2. ^ Schneider, Philip. „NURB-Kurven: Ein Leitfaden für Einsteiger“ . MACTECH . Abgerufen am 26. September 2014 .
  3. ^ Schneider, Philip (März 1996). „NURB-Kurven: Ein Leitfaden für Einsteiger“ (PDF) . develop (25): 48–74 .
  4. ^ Schoenberg, IJ (19. August 1964). „Spline-Funktionen und das Problem der Graduierung“ . Proceedings of the National Academy of Sciences of the United States of America . 52 (4). National Academy of Sciences : 947–950 . Bibcode : 1964PNAS...52..947S . doi : 10.1073 / pnas.52.4.947 . PMC 300377. PMID 16591233 .  
  5. ^ Versprille, Kenneth (1975-01-01). „Computergestützte Designanwendungen der rationalen B-Spline-Approximationsform“ . Dissertationen im Bereich Elektrotechnik und Informatik .
  6. ^ „Wie entstanden die NURBS-Algorithmen? – von Dr. Ken Versprille | Solid Edge“ . 16.09.2013 . Abgerufen am 06.11.2025 .
  7. ^ Piegl, L. (31. Januar 1991). „Über NURBS: Eine Übersicht“ . IEEE Computer Graphics and Applications . 11 (1): 55–71 . doi : 10.1109/38.67702 . ISSN 1558-1756 . 
  8. ^ Foley, van Dam, Feiner & Hughes: Computer Graphics: Principles and Practice , section 11.2, Addison-Wesley 1996 (2nd ed.).
  9. ^ Bio-inspirierte selbstorganisierende Robotersysteme . S. 9. Abgerufen am 06.01.2014 .
  10. ^ "Rationale B-Splines" . www.cl.cam.ac.uk .
  11. ^ „NURBS: Definition“ . www.cs.mtu.edu .
  12. ^ David F. Rogers: Eine Einführung in NURBS mit historischer Perspektive, Abschnitt 7.1
  13. ^ Gershenfeld, Neil (1999). The Nature of Mathematical Modeling . Cambridge University Press . S. 141. ISBN 0-521-57095-6Die
  14. ^ a b c d Piegl, Les; Tiller, Wayne (1997). The NURBS Book (2. Aufl.). Berlin: Springer. ISBN 3-540-61545-8Die
  15. ^ Piegl, L. (1989). „Modifying the shape of rational B-splines. Part 1: curves“. Computer-Aided Design . 21 (8): 509– 518. doi : 10.1016/0010-4485(89)90059-6 .