Blossoming

Aus testwiki
Zur Navigation springen Zur Suche springen

Das Blossoming-Prinzip stellt im Computer Aided Geometric Design eine Verbindung von Punkten einer Kurve und ihren Kontrollpunkten her. Es wurde 1984 von Paul de Casteljau entdeckt und 1987 von Lyle Ramshaw veröffentlicht.[1] Im Falle von identischen Argumenten (der sog. Diagonalen) bestimmt das Blossom den Punkt einer Kurve, im Fall von konsekutiven Argumenten einen Kontrollpunkt dieser Kurve. Insbesondere verbindet das Blossoming die Theorien für Bézierkurven und B-Spline-Kurven und -Flächen, mithin den de-Casteljau-Algorithmus mit dem de-Boor-Algorithmus.

Definition

Als Blossom 𝐛[t1,,tn] des Polynoms 𝐛(t)wird in der Mathematik, insbesondere im Computer Aided Design, eine Funktion mit n Argumenten bezeichnet, die durch drei Eigenschaften definiert ist:

  • Sie ist symmetrisch in ihren Argumenten:
𝐛[t1,,tn]=𝐛[π(t1,,tn)],
(wobei π eine beliebige Permutation ihrer Argumente ist).
  • Sie ist multi-affin, also affin in jedem ihrer Argumente:
𝐛[αr+βs,]=α𝐛[r,]+β𝐛[s,], mit α+β=1.
  • Sie erfüllt die Diagonal-Eigenschaft:
𝐛[t,,t]=𝐛(t).

Berechnung

Da sich jede rationale symmetrische Funktion in t1,,tn als ein Polynom in den elementarsymmetrischen Funktionen

σ1n=t1+t2++tn
σ2n=t1t2+t1t3++t2t3++tn1tn
σnn=t1t2t3tn

schreiben lässt, können wir das Blossom des Polynoms

𝐛(t)=𝐚0+i=1n𝐚i(ni)tn

algebraisch finden als

𝐛[t1,,tn]=𝐚0+i=1n𝐚iσin

Beispiel

Das Blossom des quartischen Polynoms

𝐱(t) = 𝐚0(40)t0+𝐚1(41)t1+𝐚2(42)t2+𝐚3(43)t3+𝐚4(44)t4= 𝐚0+4𝐚1t+6𝐚2t2+4𝐚3t3+𝐚4t4

ist das symmetrische, 4-affine Polynom

𝐱[t1,,t4]=𝐚0+𝐚1(t1+t2+t3+t4)+𝐚2(t1t2+t1t3+t1t4+t2t3+t2t4+t3t4)+𝐚3(t1t2t3+t1t2t4+t1t3t4+t2t3t4)+𝐚4(t1t2t3t4)

Anwendung

Blossoming einer Bézierkurve

De-Casteljau-Algorithmus für eine Bezier-Kurve 3. Grades

Am Beispiel einer Bézierkurve vom Grad n=3 wird deutlich, wie mittels Blossoming sowohl Kurvenpunkte (im Bild 𝐛0 und 𝐛3) als auch Kontrollpunkte (im Bild 𝐛1 und 𝐛2) ermittelt werden können.

Das Blossom der Bézierkurve

𝐛(t) = i=03(3i)ti(1t)3i𝐛i= (1t)3𝐛0+3t(1t)2𝐛1+3t2(1t)𝐛2+t3𝐛3

ist das symmetrische tri-affine Polynom

𝐛[t1,t2,t3]=𝐛0(1t1)(1t2)(1t3)+𝐛1[t1(1t2)(1t3)+(1t1)t2(1t3)+(1t1)(1t2)t3]+𝐛2[t1t2(1t3)+t1(1t2)t3+(1t1)t2t3]+𝐛3t1t2t3

Setzen wir für t1,t2,t3 spezielle Werte ein, so ergibt sich:

𝐛000:=𝐛[0,0,0]=𝐛0𝐛001=𝐛1𝐛011=𝐛2𝐛111=𝐛3

Mehr noch, wir können auch die Zwischenpunkte des de-Casteljau-Algorithmus direkt berechnen als:

𝐛00t:=𝐛[0,0,t]=𝐛01𝐛0t1=𝐛11 𝐛0tt=𝐛02𝐛t11=𝐛21 𝐛tt1=𝐛12 𝐛ttt=𝐛03=𝐛(t)

Blossoming einer B-Splinekurve

Wir fügen polynomiale Kurven stückweise zusammen zur B-Spline-Kurve

𝐬(u) = i=1n𝐜iNin(u) 

mit B(asis)-Splines Nin . Fügt man die zugrundeliegenden Parameter-Intervalle aneinander, so ergeben sie eine Knotenfolge u1,u2,,un. Blossoming auf den Teilintervallen führt zu den jeweiligen Bézierkurven bzw. den Kontrollpunkten des de-Casteljau-Algorithmus, also etwa

𝐬333:=𝐬[u3,u3,u3]=𝐛0𝐬334=𝐛1𝐬344=𝐛2𝐬444=𝐛3

Blossoming über die Teilintervalle hinaus führt zu den Kontrollpunkten des de-Boor-Algorithmus:

𝐬123:=𝐬[u1,u2,u3]=𝐜0𝐬234=𝐜1𝐬345=𝐜2𝐬456=𝐜3

Blossom und Oskulante

Zu einer polynomialen Kurve 𝐱(t) vom Grad n definieren wir

Δa𝐱(t):=𝐱(t)+𝐱˙(t)atn

als die erste Oskulante von 𝐱(t) zum Knoten a. Sie ist eine polynomiale Kurve vom Grad n1 in t und hat mit 𝐱(t) nur den Punkt 𝐱(a) gemeinsam, an welchem die Kurven einen Kontakt der Ordnung n1 haben.

Zu Δa𝐱 lässt sich zu einem Knoten b erneut eine Oskulante bestimmen. Sie ist die zweite Oskulante von 𝐱 zu den Knoten a und b:

Δab𝐱= Δb(Δa𝐱)= Δb𝐱+Δb(𝐱˙(t)atn)= 𝐱+𝐱˙(at)+(bt)n+𝐱¨(at)(bt)n1

Eigenschaften der Oskulante

Oskulanten besitzen folgende Eigenschaften:

  • Sie sind symmetrisch in den Knoten:
Δab𝐱=Δba𝐱
  • Sie sind affin in den Knoten: Aus  a=p(1t)+qt folgt
Δa𝐱=(1t)Δp𝐱+tΔq𝐱
  • Ihre Diagonale ist identisch mit der Kurve:
Δtn𝐱=Δtt𝐱=𝐱(t)

Oskulanten wurden 1886 von Stanislaus Jolles in seiner Habilitationsschrift eingeführt. Sie sind im parametrischen Fall identisch mit den Blossoms von de Casteljau und Ramshaw und lassen sich mittels Blossoming einfach herleiten: Für eine kubische Bézierkurve mit den Kontrollpunkten 𝐛000,𝐛001,𝐛011,𝐛111 wird die Oskulante zum Knoten t durch die folgenden Bézier-Kontrollpunkte definiert: 𝐛00t,𝐛0t1,𝐛t11

Literatur

Einzelnachweise