Bezierfläche

Aus testwiki
Zur Navigation springen Zur Suche springen
Tensorprodukt-Bezierfläche und ihr Kontrollnetz (blau)

In der Geometrie sind Bezierflächen Flächen im 3, die als räumliche Verallgemeinerungen von Bezierkurven definiert werden. Dabei geht man im Wesentlichen zwei Wege einer Verallgemeinerung. Dies führt auf:

Bezierflächen spielen in den Bereichen Computergraphik und ComputerAidedDesign eine wesentliche Rolle beim Modellieren von Freiformflächen[1][2].

Tensorprodukt-Bezierflächen

Definition

Es sei 𝐛m(u)=i=0m𝐛iBim(u) eine Bezierkurve im 3, deren Kontrollpunkte von einem weiteren Parameter v abhängen, und zwar sollen sie selbst auf Bezierkurven liegen:  𝐛i(v)=j=0n𝐛ijBjn(v). Damit beschreibt

  • 𝐛m,n(u,v)=i=0mj=0n𝐛ijBim(u)Bjn(v),u,v[0,1]

eine Fläche, die zu den Kontrollpunkten oder Kontrollnetz 𝐛ij gehörige (m,n)-Tensorprodukt-Bezierfläche[3]. Die Fläche enthält die Punkte  𝐛00, 𝐛m0, 𝐛0n, 𝐛mn  und die Parameter-Kurven (u oder v sind konstant), insbesondere die Randkurven, sind Bezierkurven.

Man beachte, dass eine (1,1)-Tensorprodukt-Bezierfläche zwar Geraden enthält, aber i.a. nicht eben ist. Z.B. erhält man für

𝐛00=(0,0,0)T, 𝐛10=(1,0,0)T, 𝐛01=(0,1,0)T, 𝐛11=(1,1,1)T die Fläche mit der Parameterdarstellung
𝐱=𝐛1,1(u,v)=𝐛00(1u)(1v)+𝐛10u(1v)+𝐛01(1u)v+𝐛11uv
==(u,v,uv)T

Dies ist ein Teil des hyperbolischen Paraboloids mit der Gleichung z=xy.

Der Casteljau-Algorithmus

Die Grundidee des Casteljau-Algorithmus für Kurven ist die lineare Interpolation von Punktepaaren. überträgt man diese Idee auf Tensorprodukt-Bezierflächen, so muss man eine bilineare Interpolation für vier Punkte definieren. Sie ist, wie bei Kurven, am einfachsten Fall ablesbar: Eine (1,1)-Tensorprodukt-Bezierfläche auf den vier Punkten 𝐛00,𝐛10,𝐛01,𝐛11 hat die folgende Darstellung:

𝐛1,1(u,v)=(1u)(1v)𝐛00+u(1v)𝐛10+(1u)v𝐛01+uv𝐛11

Oder in Matrixform:

𝐛1,1(u,v)=(1u,u)(𝐛00𝐛01𝐛10𝐛11)(1vv)

Man geht zunächst von einem (n×n)-Kontrollnetz aus und bestimmt (wie bei Kurven) für r=1,2,..,n und einem Parameterpaar (u,v) Zwischenvektoren, die durch bilineare Interpolation entstehen:

𝐛i,jr=(1u,u)(𝐛i,jr1𝐛i,j+1r1𝐛i+1,jr1𝐛i+1,j+1r1)(1vv),

wobei 𝐛i,j0:=𝐛i,j ist. Dann sei 𝐛0,0n der Punkt, der dem Parameterpaar (u,v) zugeordnet wird.

Falls m>n ist, ist ab r=n der zweite Index konstant j=0 und es wird nur noch linear interpoliert (wie bei Bezierkurven).

  • Der Punkt 𝐛0,0m ist dann der Flächenpunkt.

Analog verfährt man, falls m<n ist.

Graderhöhung

Es ist oft von Vorteil, wenn für eine (m,n)-Tensorprodukt-Bezierfläche m=n ist. Falls dies nicht der Fall ist, lässt sich dies mit Hilfe geeigneter Graderhöhungen erreichen.

Die Graderhöhung von (m,n) auf (m+1,n) der Tensorprodukt-Bezierfläche

𝐛m,n(u,v)=j=0n[i=0m𝐛ijBim(u)]Bin(v)

führt auf die n+1 Graderhöhungen für die Bezierkurven in der eckigen Klammer:

i=0m𝐛ijBim(u)=i=0m+1𝐛ij(1,0)Bim+1(u),j=0,...n

mit

𝐛ij(1,0):=(1im+1)𝐛i,j+im+1𝐛i1,j,i=0,...,m+1.

Ableitungen einer Bezier-Fläche

Die partielle Ableitung der Tensorprodukt-Bezierfläche

𝐛m,n(u,v)=j=0ni=0m𝐛ijBim(u)Bjn(v)

nach u ist

u𝐛m,n(u,v)=j=0n[ui=0m𝐛ijBim(u)]Bin(v).

Mit dem Resultat für die Ableitung einer Bezierkurve ergibt sich:

  • u𝐛m,n(u,v)=mj=0n[i=0m1Δ1,0𝐛ijBim1(u)]Bin(v),

wobei Δ1,0𝐛i,j:=𝐛i+1,j𝐛i,j. Analog erhält man die partielle Ableitung nach v und alle höheren Ableitungen.

Da die Vektoren Δ1,0𝐛0,0,Δ0,1𝐛0,0 Tangentenvektoren der im Punkt 𝐛0,0 beginnenden Randkurven sind, ist

  • Δ1,0𝐛0,0×Δ0,1𝐛0,0

ein Normalenvektor der Fläche in diesem Punkt, falls beide linear unabhängig sind. D.h. die Tangentialebene in den Eckpunkten einer Tensorprodukt-Bezierfläche wird i.a. jeweils von dem Eckpunkt und seinen Nachbarpunkten im Kontrollnetz aufgespannt.

Dreiecks-Bezierflächen

Motivation und Definition

Eine formale Verallgemeinerung der Bernstein-Polynome auf Funktionen mit zwei Variablen würde von der Beziehung 1=(u+v+(1uv))n= ausgehen. Damit die auftretenden Terme alle positiv sind, muss (u,v) in dem Dreieck (0,0),(1,0),(0,1) liegen. Zwei der drei Dreiecksseiten spielen als Intervalle auf den Koordinatenachsen eine besondere Rolle. Um diese Bevorzugung zu vermeiden, führt man homogene Koordinaten u,v,w mit der Bedingung u+v+w=1,u,v,w0 ein. u,v,w nennt man Baryzentrische Koordinaten. Die verallgemeinerten Bernsteinpolynome ergeben sich aus der Entwicklung von (u+v+w)n zu:

  • Bijkn(u,v,w):=n!i!j!k!uivjwk

mit i+j+k=n, i,j,k0 und u+v+w=1, u,v,w0.

Kontrollpunkte einer Dreiecks-Bezierfläche

Mit den Abkürzungen 𝐈:=(i,j,k), 𝐮:=(u,v,w) und |𝐈|:=i+j+k, |𝐮|:=u+v+w ist

B𝐈n(𝐮):=n!i!j!k!uivjwk,|𝐮|=1und|𝐈|=nB𝐈n=1.

Ist nun

𝐛00n,𝐛10,n1,...𝐛n00,𝐛01,n1,𝐛11,n2,...,𝐛n1,10,...,𝐛0n0

ein dreieckiges Netz von Punkten des 3, den Kontrollpunkten, so ist[4]

  • 𝐛n(𝐮):=|𝐈|=n𝐛𝐈B𝐈n(𝐮)

die zugehörige Dreiecks-Bezierfläche.

Die Abbildung zeigt die Anordnung der Punkte für den Fall n=4.

De-Casteljau-Algorithmus

Um den Casteljau-Algorithmus für Dreiecks-Bezierflächen übersichtlich formulieren zu können, führt man noch die folgenden Abkürzungen ein[5]:

𝐞1:=(1,0,0),𝐞2:=(0,1,0),𝐞3:=(0,0,1)  und 𝐨:=(0,0,0).

Es sei nun {𝐛𝐈||𝐈|=n} ein dreieckiges Netz von Punkten im 3 und 𝐮 ein Parametervektor in baryzentrischen Koordinaten. Dann sei für r=1,...,n und 𝐈=nr

𝐛𝐈r:=u𝐛𝐈+𝐞1r1(𝐮)+v𝐛𝐈+𝐞2r1(𝐮)+w𝐛𝐈+𝐞3r1(𝐮)

mit 𝐛𝐈0(𝐮):=𝐛𝐈. Dann ist

  • 𝐛𝐨n(𝐮) ein Punkt der Dreiecks-Bezierfläche[6].

Der Nachweis, dass der Casteljau-Algorithmus wirklich einen Punkt der Dreiecks-Bezierfläche liefert, verwendet (analog zum Kurvenfall) die Rekursionsformeln für Bernsteinpolynome:

  • B𝐈n(𝐮)=uB𝐈𝐞1n1(𝐮)+vB𝐈𝐞2n1(𝐮)+wB𝐈𝐞3n1(𝐮),|𝐈|=n.

Für weitere Details sei auf die Literatur verwiesen.

Einzelnachweise

  1. Farin: Curves and Surfaces for CAGD
  2. Hoschek&Lasser: Grundlagen der geometrischen Datenverarbeitung
  3. Farin S. 254
  4. Farin S. 310
  5. Farin S. 307
  6. Farin S. 306

Literatur

  • Gerald Farin: Curves and Surfaces for CAGD. A practical guide. 5. Aufl. Academic Press, San Diego 2002, ISBN 1-55860-737-4
  • J. Hoschek, D. Lasser: Grundlagen der geometrischen Datenverarbeitung, Vieweg+Teubner Verlag, 1989, ISBN 978-3-519-02962-5
  • David Salomon: Curves and Surfaces for Computer Graphics. Springer Science+Business Media, Inc., 2006, ISBN 0-387-24196-5
  • Boaswan Dzung Wong: Bézierkurven: gezeichnet und gerechnet. Orell Füssli Verlag, Zürich 2003, ISBN 3-280-04021-3
  • Wolfgang Boehm, Gerald Farin, Jürgen Kahmann: A survey of curve and surface methods in CAGD, Comput. Aided Geom. Des. 1, S. 1–60, 1984