Kurve von Bézier

Eine Bézier-Kurve ist eine parametrische Kurve, die oft in der Computergrafik und den verwandten Feldern verwendet ist. Generalisationen von Kurven von Bézier zu höheren Dimensionen werden Oberflächen von Bézier genannt, von denen das Dreieck von Bézier ein spezieller Fall ist.

In der Vektor-Grafik sind Kurven von Bézier an glatte Musterkurven gewöhnt, die unbestimmt erklettert werden können. "Pfade", weil auf sie in Bildmanipulationsprogrammen allgemein verwiesen wird, sind Kombinationen von verbundenen Kurven von Bézier. Pfade werden durch die Grenzen von rasterized Images nicht gebunden und sind intuitiv, um zu modifizieren. Kurven von Bézier werden auch im Zeichentrickfilm als ein Werkzeug verwendet, um Bewegung zu kontrollieren.

Kurven von Bézier werden auch im Zeitabschnitt besonders im Zeichentrickfilm verwendet und verbinden Design z.B, eine Kurve von Bézier kann verwendet werden, um die Geschwindigkeit mit der Zeit eines Gegenstands wie eine Ikone anzugeben, die sich von bis B bewegt, anstatt sich einfach an einer festgelegten Zahl von Pixeln pro Schritt zu bewegen. Wenn Zeichner von Trickfilmen oder Schnittstelle-Entwerfer über die "Physik" oder "das Gefühl" einer Operation sprechen, können sie sich auf die besondere Kurve von Bézier beziehen, hat gepflegt, die Geschwindigkeit mit der Zeit der fraglichen Bewegung zu kontrollieren.

Kurven von Bézier wurden 1962 vom französischen Ingenieur Pierre Bézier weit veröffentlicht, der sie an Designkraftfahrzeugkörpern verwendet ist. Aber die Studie dieser Kurven wurde zuerst 1959 vom Mathematiker Paul de Casteljau entwickelt, der den Algorithmus von de Casteljau, eine numerisch stabile Methode verwendet, Kurven von Bézier zu bewerten.

Anwendungen

Computergrafik

Kurven von Bézier werden in der Computergrafik weit verwendet, um glatte Kurven zu modellieren. Da die Kurve im konvexen Rumpf seiner Kontrollpunkte völlig enthalten wird, können die Punkte grafisch gezeigt und verwendet werden, um die Kurve intuitiv zu manipulieren. Transformationen von Affine wie Übersetzung und Folge können an die Kurve durch die Verwendung des jeweiligen angewandt werden verwandeln sich auf den Kontrollpunkten der Kurve.

Quadratische und kubische Kurven von Bézier sind am üblichsten; höhere Grad-Kurven sind mehr rechenbetont teuer, um zu bewerten. Wenn kompliziertere Gestalten, niedrige Ordnung erforderlich sind, werden Kurven von Bézier zusammen geflickt. Das wird allgemein einen "Pfad" in Vektor-Grafikstandards (wie SVG) und Vektor-Grafikprogramme (wie Adobe Illustrator und Inkscape) genannt. Um Glätte zu versichern, muss der Kontrollpunkt, an dem sich zwei Kurven treffen, auf der Linie zwischen den zwei Kontrollpunkten auf beiden Seiten sein.

Die einfachste Methode für das Ansehen, das sich (rasterizing) eine Kurve von Bézier umwandelt, soll bewerten es an vielen nah Punkten unter Drogeneinfluss und Ansehen wandelt die näher kommende Folge von Liniensegmenten um. Jedoch versichert das nicht, dass die rasterized Produktion genug glatt aussieht, weil die Punkte zu weit einzeln sein unter Drogeneinfluss können. Umgekehrt kann es zu viele Punkte in Gebieten erzeugen, wo die Kurve in der Nähe vom geradlinigen ist. Eine allgemeine anpassungsfähige Methode ist rekursive Unterteilung, in der Kontrollpunkte einer Kurve überprüft werden, um zu sehen, ob die Kurve einem Liniensegment zu innerhalb einer kleinen Toleranz näher kommt. Wenn nicht, die Kurve wird parametrisch in zwei Segmente, 0  t  0.5 und 0.5  t  1 unterteilt, und dasselbe Verfahren wird rekursiv auf jede Hälfte angewandt. Es gibt auch differencing Vorwärtsmethoden, aber große Sorge muss genommen werden, um Fehlerfortpflanzung zu analysieren. Analytische Methoden, wo ein Fugenbrett mit jeder Ansehen-Linie durchgeschnitten wird, schließen Entdeckung von Wurzeln von Kubikpolynomen (für Kubikfugenbretter) ein und sich mit vielfachen Wurzeln befassend, so werden sie in der Praxis nicht häufig verwendet.

Zeichentrickfilm

In Zeichentrickfilm-Anwendungen, wie Adobe Flash und Synfig, werden Kurven von Bézier verwendet, um, zum Beispiel, Bewegung zu entwerfen. Benutzer entwerfen den gewollten Pfad in Kurven von Bézier, und die Anwendung schafft die erforderlichen Rahmen für den Gegenstand, der Pfad voranzukommen.

Für den 3D-Zeichentrickfilm werden Kurven von Bézier häufig verwendet, um 3D-Pfade sowie 2. Kurven für die keyframe Interpolation zu definieren.

Schriftarten

Schriftarten von TrueType verwenden aus quadratischen Kurven von Bézier zusammengesetzte Fugenbretter von Bézier. Moderne Bildaufbereitungssysteme wie PostScript, Asymptote, Metafont und SVG verwenden Fugenbretter von Bézier, die aus Kubikkurven von Bézier zusammengesetzt sind, um gebogene Gestalten zu ziehen. Schriftarten von OpenType können jeden Typen abhängig vom Geschmack nach der Schriftart verwenden.

Die innere Übergabe aller Kurven von Bézier in der Schriftart oder Vektor-Grafik renderers wird sie rekursiv bis zum Punkt spalten, wo die Kurve flach genug ist, um als eine Reihe von geradlinigen oder kreisförmigen Segmenten gezogen zu werden. Der genaue zerreißende Algorithmus ist Durchführungsabhängiger, nur die Flachheitskriterien müssen respektiert werden, um die notwendige Präzision zu erreichen und nichtmonotonische lokale Änderungen der Krümmung zu vermeiden. Die "glatte Kurve" Eigenschaft von Karten in Microsoft Excel verwendet auch diesen Algorithmus.

Weil Kreisbogen von Kreisen und Ellipsen durch Kurven von Bézier nicht genau vertreten werden können, wird ihnen zuerst durch Kurven von Bézier näher gekommen, denen der Reihe nach durch Kreisbogen von Kreisen näher gekommen wird. Das ist ineffizient, weil dort auch Annäherungen aller Kurven von Bézier mit Kreisbogen von Kreisen oder Ellipsen besteht, die zusätzlich mit der willkürlichen Präzision gemacht werden können. Eine andere Annäherung, die durch moderne Hardware-Grafikadapter mit der beschleunigten Geometrie verwendet ist, kann genau ganzen Bézier und konische Kurven (oder Oberflächen) in NURBS umwandeln, der zusätzlich ohne das erste Aufspalten der Kurve rekursiv gemacht werden kann, um die notwendige Flachheitsbedingung zu erreichen. Diese Annäherung erlaubt auch, die Kurve-Definition unter allen geradlinig oder perspektivisch 2. zu bewahren, und 3D verwandelt sich und Vorsprünge.

Schriftart-Motoren, wie FreeType, ziehen die Kurven der Schriftart (und Linien) auf einer Pixellated-Oberfläche, in einem Prozess genannt die Schriftart rasterization.

Überprüfung von Fällen

Eine Bézier-Kurve wird durch eine Reihe von Kontrollpunkten P durch P definiert, wo n seine Ordnung (n = 1 für den geradlinigen, 2 für den quadratischen, usw.) genannt wird. Vor allen Dingen sind Kontrollpunkte immer die Endpunkte der Kurve; jedoch liegen die Zwischenkontrollpunkte (wenn irgendwelcher) allgemein auf der Kurve nicht.

Geradlinige Bézier-Kurven

Gegebene Punkte P und P, eine geradlinige Kurve von Bézier ist einfach eine Gerade zwischen jenen zwei Punkten. Die Kurve wird durch gegeben

:

und ist zur geradlinigen Interpolation gleichwertig.

Quadratische Bézier-Kurven

Eine quadratische Kurve von Bézier ist der Pfad, der durch die Funktion B (t) verfolgt ist, gegeben Punkte P, P, und P,

:

der als der geradlinige interpolant von entsprechenden Punkten auf den geradlinigen Kurven von Bézier von P bis P und von P bis P beziehungsweise interpretiert werden kann. Ausführlicher kann es als geschrieben werden:

:

Es weicht von P in der Richtung auf P ab, biegt sich dann, um P in der Richtung von P zu erreichen. Mit anderen Worten führen die Tangenten in P und P beide P durch. Das wird von der Ableitung der Kurve von Bézier direkt gesehen:

:

Eine quadratische Kurve von Bézier ist auch ein parabolisches Segment. Da eine Parabel eine konische Abteilung ist, kennzeichnen einige Quellen quadratischen Béziers als "konische Kreisbogen".

Kubikbézier-Kurven

Vier Punkte P, P, P und P im Flugzeug oder im hoch-dimensionalen Raum definieren eine Kubikkurve von Bézier.

Die Kurve fängt an P an, der zu P geht, und erreicht P, der aus der Richtung von P kommt. Gewöhnlich wird es P oder P nicht durchführen; diese Punkte sind nur dort, um Richtungsauskunft zu geben. Die Entfernung zwischen P und P bestimmt, "wie lange" die Kurve in Richtung P vor dem Drehen zu P umzieht.

B (t) für die quadratische Kurve von Bézier schreibend, die durch Punkte P, P, und P definiert ist, kann die Kubikkurve von Bézier als eine geradlinige Kombination von zwei quadratischen Kurven von Bézier definiert werden:

:

Die ausführliche Form der Kurve ist:

:

Für einige Wahlen von P und P kann die Kurve sich durchschneiden, oder eine Spitze enthalten.

Generalisation

Kurven von Bézier können für jeden Grad n definiert werden.

Rekursive Definition

Eine rekursive Definition für die Kurve von Bézier des Grads n drückt es als eine Punkt-zu-Punkt-geradlinige Kombination eines Paares von entsprechenden Punkten in zwei Kurven von Bézier des Grads n &minus aus; 1.

Lassen Sie zeigen die Kurve von Bézier an, die durch die Punkte P, P..., P bestimmt ist. Dann

:, und anzufangen

:

Dieser recursion wird in den Zeichentrickfilmen unten aufgehellt.

Ausführliche Definition

Die Formel kann ausführlich wie folgt ausgedrückt werden:

:

\begin {richten }\aus

\mathbf {B} (t) & = \sum_ {i=0} ^n {n\choose i} (1-t) ^ {n-i} t^i\mathbf {P} _i \\

& = (1-t) ^n\mathbf {P} _0 + {n\choose 1} (1-t) ^ {n-1} t\mathbf {P} _1 + \cdots \\

& {} \quad \cdots + {n\choose n-1} (1-t) t^ {n-1 }\\mathbf {P} _ {n-1} + t^n\mathbf {P} _n, \quad t \in [0,1],

\end {richten }\aus

</Mathematik>

wo die binomischen Koeffizienten sind.

Zum Beispiel, für n = 5:

:\begin {richten }\aus

\mathbf {B} _ {\\mathbf {P} _0\mathbf {P} _1\mathbf {P} _2\mathbf {P} _3\mathbf {P} _4\mathbf {P} _5} (t) = \mathbf {B} (t) & = (1-t) ^5\mathbf {P} _0 + 5t (1-t) ^4\mathbf {P} _1 + 10t^2 (1-t) ^3 \mathbf {P} _2 \\

& {} \quad + 10t^3 (1-t) ^2 \mathbf {P} _3 + 5t^4 (1-t) \mathbf {P} _4 + T^5 \mathbf {P} _5, \quad t \in [0,1].

\end {richten }\aus</Mathematik>

Fachsprache

Eine Fachsprache wird mit diesen parametrischen Kurven vereinigt. Wir haben

:

wo die Polynome

:

sind als Basispolynome von Bernstein des Grads n bekannt.

Bemerken Sie dass t = 1, (1 &minus; t) = 1, und dass der binomische Koeffizient, auch ausgedrückt als oder ist:

:

Die Punkte P werden Kontrollpunkte nach der Kurve von Bézier genannt. Das gebildete Vieleck durch das Anschließen der Punkte von Bézier mit Linien, das Starten mit P und das Vollenden mit P, wird das Vieleck von Bézier (oder Kontrollvieleck) genannt. Der konvexe Rumpf des Vielecks von Bézier enthält die Kurve von Bézier.

Eigenschaften

  • Die Kurve beginnt an P und Enden an P; das ist das so genannte Endpunkt-Interpolationseigentum.
  • Die Kurve ist eine Gerade, wenn, und nur wenn alle Kontrollpunkte collinear sind.
  • Der Anfang (Ende) der Kurve ist Tangente zur ersten (letzten) Abteilung des Vielecks von Bézier.
  • Eine Kurve kann an jedem Punkt in zwei Subkurven, oder in willkürlich viele Subkurven gespalten werden, von denen jede auch eine Kurve von Bézier ist.
  • Einige Kurven, die einfach wie der Kreis scheinen, können genau von Bézier oder piecewise Kurve von Bézier nicht beschrieben werden; obwohl eine vierteilige Kubikkurve von Bézier einem Kreis näher kommen kann (sieh Fugenbrett von Bézier), mit einem maximalen radialen Fehler von weniger als einem Teil in eintausend wenn ist jeder innere Kontrollpunkt (oder weisen offline hin), die Entfernung horizontal oder vertikal von einem Außenkontrollpunkt auf einem Einheitskreis. Mehr allgemein kann eine n-piece Kubikkurve von Bézier einem Kreis näher kommen, wenn jeder innere Kontrollpunkt die Entfernung von einem Außenkontrollpunkt auf einem Einheitskreis ist, wo t 360/n Grade und n> 2 ist.
  • Die Kurve an einem festen Ausgleich von einer gegebenen Kurve von Bézier, häufig genannt eine Ausgleich-Kurve ("Parallele" zur ursprünglichen Kurve, wie der Ausgleich zwischen Schienen in einer Gleise-Spur liegend), kann durch eine Kurve von Bézier (außer in einigen trivialen Fällen) nicht genau gebildet werden. Jedoch gibt es heuristische Methoden, die gewöhnlich eine entsprechende Annäherung zu praktischen Zwecken geben.
  • Jede quadratische Kurve von Bézier ist auch eine Kubikkurve von Bézier, und mehr allgemein, jeder Grad n Kurve von Bézier ist auch ein Grad M Kurve für jeden m> n. Im Detail spitzt ein Grad n Kurve mit der Kontrolle an, dass P, …, P (einschließlich des parametrization) zum Grad n + gleichwertig ist, spitzt 1 Kurve mit der Kontrolle P', …, P', wo an.

Das Konstruieren Bézier Kurven

Geradlinige Kurven

Vom t in der Funktion für eine geradlinige Kurve von Bézier kann als das Beschreiben gedacht werden, wie weit B (t) von P bis P ist. Zum Beispiel, wenn t=0.25, B (t) ein Viertel des Weges vom Punkt P zu P ist. Da sich t von 0 bis 1 ändert, B beschreibt (t) eine Gerade von P bis P.

Quadratische Kurven

Weil sich quadratischer Bézier biegt, kann man Zwischenpunkte Q und solchen Q bauen, dass weil sich t von 0 bis 1 ändert:

  • Punkt Q ändert sich von P bis P und beschreibt eine geradlinige Kurve von Bézier.
Punkt Q ändert sich von P bis P und beschreibt eine geradlinige Kurve von Bézier.
  • Spitzen Sie an, dass sich B (t) von Q bis Q ändert und eine quadratische Kurve von Bézier beschreibt.
</Zentrum>

Höherwertige Kurven

Für höherwertige Kurven braucht man entsprechend mehr Zwischenpunkte. Für Kubikkurven kann man Zwischenpunkte Q, Q, und Q bauen, die geradlinige Kurven von Bézier beschreiben, und spitzt R & R an, die quadratische Kurven von Bézier beschreiben:

</Zentrum>

Weil sich vierte Ordnung biegt, kann man Zwischenpunkte Q, Q, Q & Q bauen, die geradlinige Kurven von Bézier, Punkt-R, R & R beschreiben, die quadratische Kurven von Bézier beschreiben, und S & S anspitzt, die Kubikkurven von Bézier beschreiben:

</Zentrum>

Für Kurven der fünften Ordnung kann man ähnliche Zwischenpunkte bauen.

</Zentrum>

Grad-Erhebung

Eine Bézier Kurve des Grads n kann in eine Kurve von Bézier des Grads n + 1 mit derselben Gestalt umgewandelt werden. Das ist nützlich, wenn Software Kurven von Bézier nur des spezifischen Grads unterstützt. Zum Beispiel können Sie eine quadratische Kurve von Bézier mit Kairo ziehen, das nur Kubikkurven von Bézier unterstützt.

Um Grad-Erhebung zu tun, verwenden wir die Gleichheit. Jeder Bestandteil wird damit multipliziert (1 &minus; t) oder t, so einen Grad durch einen vergrößernd. Hier ist das Beispiel des zunehmenden Grads von 2 bis 3.

:

\begin {richten }\aus

& {} \quad (1 - t) ^ {2 }\\mathbf {P} _0 + 2 (1 - t) t\mathbf {P} _1 + t^ {2 }\\mathbf {P} _2 \\

& = (1 - t) ^ {3 }\\mathbf {P} _0 + (1 - t) ^ {2} t\mathbf {P} _0 + 2 (1 - t) ^ {2} t\mathbf {P} _1 \\

& {} \qquad + 2 (1 - t) t^ {2 }\\mathbf {P} _1 + (1 - t) t^ {2 }\\mathbf {P} _2 + t^ {3 }\\mathbf {P} _2 \\

& = (1 - t) ^ {3 }\\mathbf {P} _0

+ 3 (1 - t) ^ {2} t\frac {\\mathbf {P} _0 + 2\mathbf {P} _1} {3 }\

+ 3 (1 - t) t^ {2 }\\frac {2\mathbf {P} _1 + \mathbf {P} _2} {3 }\

+ t^ {3 }\\mathbf {P} _2

\end {richten }\aus</Mathematik>

Für willkürlichen n verwenden wir Gleichheiten

:

\quad (1-t) \mathbf {b} _ {ich, n} = \frac {n+1-i} {n+1} \mathbf {b} _ {ich, n+1} </Mathematik>

:

\quad t\mathbf {b} _ {ich, n} = \frac {i+1} {n+1} \mathbf {b} _ {i+1, n+1} </Mathematik>

:\begin {richten }\aus

\mathbf {B} (t) & = (1-t) \sum_ {i=0} ^n \mathbf {b} _ {ich, n} (t) \mathbf {P} _i

+ t\sum_ {i=0} ^n \mathbf {b} _ {ich, n} (t) \mathbf {P} _i \\

& = \sum_ {i=0} ^n \frac {n+1-i} {n+1 }\\mathbf {b} _ {ich, n+1} (t) \mathbf {P} _i

+ \sum_ {i=0} ^n \frac {i+1} {n+1 }\\mathbf {b} _ {i+1, n+1} (t) \mathbf {P} _i \\

& = \sum_ {i=0} ^ {n+1} \left (\frac {ich} {n+1 }\\mathbf {P} _ {i-1} + \frac {n+1-i} {n+1 }\\mathbf {P} _i\right) \mathbf {b} _ {ich, n+1} (t)

\sum_ {ich

0\^ {n+1} \mathbf {b} _ {ich, n+1} (t) \mathbf {P'} _i

\end {richten }\aus</Mathematik>

das Einführen willkürlich und.

Deshalb sind neue Kontrollpunkte

:

Polynomische Form

Manchmal ist es wünschenswert, die Kurve von Bézier als ein Polynom statt einer Summe von weniger aufrichtigen Polynomen von Bernstein auszudrücken. Die Anwendung des binomischen Lehrsatzes zur Definition der von etwas Neuordnung gefolgten Kurve wird tragen:

:

\mathbf {B} (t) = \sum_ {j = 0} ^n {T^j \mathbf {C} _j }\

</Mathematik>wo:

\mathbf {C} _j = \frac {n!} {(n - j)!} \sum_ {ich = 0} ^j \frac {(-1) ^ {ich + j} \mathbf {P} _i} {ich! (j - i)!} =

\prod_ {M = 0} ^ {j - 1} (n - m) \sum_ {ich = 0} ^j \frac {(-1) ^ {ich + j} \mathbf {P} _i} {ich! (j - i)! }\

. </Mathematik>

Das konnte praktisch sein, wenn vor vielen Einschätzungen dessen geschätzt werden kann; jedoch sollte man Verwarnung verwenden, weil hohe Ordnungskurven an numerischer Stabilität Mangel haben können (der Algorithmus von de Casteljau sollte verwendet werden, wenn das vorkommt). Bemerken Sie, dass das leere Produkt 1 ist.

Vernünftige Bézier-Kurven

Die vernünftige Kurve von Bézier fügt regulierbare Gewichte hinzu, um nähere Annäherungen an willkürliche Gestalten zur Verfügung zu stellen. Der Zähler ist eine belastete Bernstein-Form Bézier Kurve und der Nenner sind eine belastete Summe von Polynomen von Bernstein. Vernünftige Bézier-Kurven, unter anderem Gebrauch, können verwendet werden, um Segmente von konischen Abteilungen genau zu vertreten.

Gegebener n + spitzt 1 Kontrolle P an, die vernünftige Kurve von Bézier kann beschrieben werden durch:

:

\mathbf {B} (t) =

\frac {\

\sum_ {i=0} ^n b_ {ich, n} (t) \mathbf {P} _ {ich} w_i

}\

{\

\sum_ {i=0} ^n b_ {ich, n} (t) w_i

}\</Mathematik>

oder einfach

:\mathbf {B} (t) =\frac {\

\sum_ {i=0} ^n {n \choose i} T^i (1-t) ^ {n-i }\\mathbf {P} _ {ich} w_i

}\{\

\sum_ {i=0} ^n {n \choose i} T^i (1-t) ^ {n-i} w_i

}.

</Mathematik>

Siehe auch

  • NURBS
  • Schnur-Kunst - Kurven von Bézier werden auch durch viele Standardformen der Schnur-Kunst gebildet, wo Schnuren über einen Rahmen von Nägeln geschlungen werden.
  • Hermite biegen

Referenzen

  • Paul Bourke: Bézier Oberflächen (im 3D),
http://local.wasp.uwa.edu.au/~pbourke/geometry/bezier/index.html
  • Donald Knuth: Metafont: das Programm, Addison-Wesley 1986, Seiten 123-131. Ausgezeichnete Diskussion von Durchführungsdetails; verfügbar umsonst als ein Teil des Vertriebs von TeX.
  • Dr Thomas Sederberg, BYU Bézier Kurven,
http://www.tsplines.com/resources/class_notes/Bezier_curves.pdf
  • J.D. Foley u. a.: (2. Hrsg., Addison Wesley, 1992)

Links


Buchhaltung / Algebra von Banach
Impressum & Datenschutz