next up previous contents
Next: 1.7 Biquadratische G-Splines Up: 1. Kurven und Flächen Previous: 1.5 Tensorproduktflächen   Inhalt


1.6 Geometrisch glatte Flächen

Die Tensorproduktflächen der Form (1.29) lassen sich nun ähnlich wie die Splinekurven geometrisch glatt zusammensetzen. Wir betrachten die gesamte Fläche als aus Flächenstücken der Form (1.29) erzeugt, wobei die Kontrollpunkte P_{j,k} bestimmte Glattheitsbedingungen erfüllen müssen. Dazu folgen wir hier dem Ansatz aus [Rei95].

Seien die folgenden beiden Flächenstücke p und q gegeben:

p: [0,1]^2 -> R^3, p(u,v) = \sum_{j=0}^alpha \sum_{k=0}^beta P_{j,k} B^alpha_j(u) B^beta_k(v), (1.31)
q: [0,1]^2 -> R^3, q(u,v) = \sum_{j=0}^alpha \sum_{k=0}^beta Q_{j,k} B^alpha_j(u) B^beta_k(v). (1.32)

Beide werden vollständig durch die Kontrollpunkte P_{j,k} und Q_{j,k} bestimmt. Zunächst fordern wir, daß P und Q eine gemeinsame Randkurve c: [0,1] -> R^3 besitzen. Dies werden wir im folgenden auch als C^0-Bedingung bezeichnen. Durch die Forderung, daß die resultierende Fläche parametrisch glatt sein soll, würden wir unsere Möglichkeiten erheblich einschränken. Ähnlich wie bei den Kurven genügt es jedoch zu fordern, daß die Fläche “nur” geometrisch glatt ist.

Definition 1.6 (Geometrische Glattheit)   Es seien zwei Flächenstücke durch die regulären Parametrisierungen p(u,v) und q(u,v) ( 0 <= u,v <= 1) mit einer gemeinsamen Randkurve

c: [0,1] -> R^3, c(u) = p(u,0) = q(u,0)    für t \in [0,1] (1.33)

gegeben. Die aus den Flächenstücken zusammengesetzte Fläche ist geometrisch glatt oder einmal stetig differenzierbar längs c, wenn gilt

Phi p_u(.,0) + Psi p_v(.,0) + q_v(.,0) \equiv 0 (1.34)

mit Phi: [0,1] -> R und Psi: [0,1] -> R^+.

Dabei können natürlich beliebige Randkurven der beiden Flächenstücke verwendet werden. Betrachten wir (1.34) genauer, dann bedeutet dies zunächst, daß die Tangentialebenen von p und q in jedem Punkt von c übereinstimmen. Die Tangentenebene in c(u) wird von den beiden Vektoren [p_u(u,0), p_v(u,0)] bzw. [q_u(u,0), q_v(u,0)] aufgespannt. Wegen (1.33) gilt p_u(u,0) = lambda(u) q_u(u,0). Hieraus folgt dann die Bedingung (1.34).

Offensichtlich genügt es jedoch nicht zu fordern, daß die Tangentialebenen übereinstimmen. Man könnte so z.B. die gleiche Fläche p oder Flächen die sich längs c tangential wie p verhalten zusammensetzen und so eine “Spitze” erhalten. Wir benötigen eine weitere Bedingung, die sicherstellt, daß die beiden Flächen auf “verschiedenen Seiten von c” liegen. Betrachten wir die Tangentialebene im Punkt c(u_0), dann wird sie durch die durch p_u(u_0,0), bzw. q_u(u_0,0) erzeugte Gerade in zwei Teilebenen zerlegt. Wenn wir nun fordern, daß p_v(u_0,0) und q_v(u_0,0) auf verschiedenen Seiten dieser Geraden liegen, ergeben sich keine “Spitzen” mehr. Um dies sicherzustellen genügt es wie in obiger Definition zu fordern, daß Psi > 0 ist.

Die Gleichung (1.34) ist noch sehr allgemein. Wählt man Phi und Psi nach [Rei95], dann erhält man speziellere Glattheitsbedingungen, die wir im folgenden für die G-Splines verwenden werden.

Definition 1.7   Die geometrische Glattheitsbedingung (1.34) ist
i)
vom Typ C, wenn Phi \equiv 0 und Psi \equiv 1;
ii)
vom Typ G_I, wenn Phi \not\equiv 0 und Psi \equiv 1;
iii)
vom Typ G_{II}, wenn Phi \equiv 0 und Psi \not\equiv 1.

Wir werden nun alle drei Typen für biquadratische p und q (d.h. alpha = beta = 2) etwas näher untersuchen.

Im Fall von Typ C erhalten wir die Bedingung für die parametrische Glattheit (C^1-Bedingung),

p_v(.,0) + q_v(.,0) \equiv 0. (1.35)

p und q eingesetzt ergibt

\sum_{j=0}^2 \sum_{k=0}^2 (P_{j,k}+Q_{j,k}) B^2_j(u) {B^2_k}_v(0) = 0. (1.36)

Es gilt {B^2_0}_v(0) = -2 = -{B^2_1}_v(0) und {B^2_2}_v(0) = 0 und aus der C^0-Bedingung folgt, daß P_{j,0} = Q_{j,0} für j=0,1,2. Also erhalten wir

\sum_{j=0}^2 (2P_{j,0}-P_{j,1}-Q_{j,1}) B^2_j(u) = 0. (1.37)

Abbildung 1.8: Kontrollpunkte für Typ C
Kontrollpunkte für Typ C

Hieraus ergeben sich die folgenden Bedingungen für die Bézierpunkte:

P_{j,0} = Q_{j,0} = (P_{j,1}+Q_{j,1})/2    für j = 0, 1, 2. (1.38)

Bei einer Vierer-Nachbarschaftsstruktur, bei der die Flächenstücke an allen vier Randkurven geometrisch glatt zusammengesetzt werden, bestimmen damit die “mittleren” Bézierpunkte P_{1,1} alle anderen Bézierpunkte. Siehe hierzu auch Abbildung 1.8. Hier können die “mittleren”, mit nicht ausgefüllten Kreisen gekennzeichneten Bézierpunkte, frei gewählt werden und die mit ausgefüllten Kreisen markierten Bézierpunkte ergeben sich als Mittel der angrenzenden, nicht ausgefüllten Bézierpunkte. Damit lassen sich alle regulären Netze, die in diesem Fall die mittleren Bézierpunkte bestimmen, in Bézierkontrollnetze umwandeln.

Für den G_I Typ erhalten wir die Gleichung

Phi p_u(.,0) + p_v(.,0) + q_v(.,0) \equiv 0. (1.39)

Nachdem p_v(u,0) und q_v(u,0) quadratisch in u sind und p_u(u,0) linear in u ist, ist die Funktion Phi linear. Also sei Phi(u) := 2gamma u mit gamma \in R. Setzt man dann (1.29) in (1.39) ein, erhält man folgende Gleichungen für die Kontrollpunkte,

P_{0,1} + Q_{0,1} = 2P_{0,0},  P_{1,1} + ... + Q_{2,1} = (2-2gamma)P_{2,0}+2gamma P_{1,0}. (1.40)

Für Typ G_{II} gilt die Gleichung

Psi p_v(.,0) + q_v(.,0) \equiv 0. (1.41)

Zur Lösung dieser Gleichung nehmen wir an, daß p_v(u,0) und q_v(u,0) im gleichen linearen Raum liegen, d.h. p_v(u,0) = a(u) T und q_v(u,0) = b(u) T mit a,b: [0,1] -> R und T \in R^3. Dann ist die Gleichung für Psi = - b/a erfüllt. Eine sinnvolle Bedingung für die Bézierpunkte ist somit

(P_{0,1}-P_{0,0})/kappa = P_{1,1} - ... - Q_{0,1} = P_{1,0} - Q_{1,1} = P_{2,0} - Q_{2,1} (1.42)

mit kappa \in R^+. Aus kappa > 0 folgt daß Psi = -q_v(\cdot,0)/p_v(\cdot,0) = 1/(\kappa B^2_0 + B^2_1 + B^2_2) > 0, wie ursprünglich gefordert.


next up previous contents
Next: 1.7 Biquadratische G-Splines Up: 1. Kurven und Flächen Previous: 1.5 Tensorproduktflächen   Inhalt
Copyright © 1999-2002 Frank C. Langbein. All rights reserved.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation.

Contact: webmaster@langbein.org
URI: http://www.langbein.org/fileadmin/research/surfaces/diploma/HTML/node12.html