Geometrie: High Order Surfaces
25. April 2004 / von Frank / Seite 9 von 13
Bézierflächen (Forts.)
Die auf Rekursion beruhende Formel für den Algorithmus von de Casteljau wollen wir uns an dieser Stelle sparen. Für die Berechnung von Flächenpunkten gibt es wie auch bei Kurven mittels von speziellen Polynomen eine verkürzte und einfachere Form, die uns im weiteren auch nicht interessieren wird. Schauen wir uns einfach eine trikubische (4x4 Gitter) Bézierfläche an, und wie diese auf Veränderung eines Kontrollpunktes reagiert:
verschiedene Beispiele
Bei der Rede von diesen Freiformflächen ist häufig auch die Rede von einem sogenannten Tensorprodukt - oder Tensorproduktflächen. Die Idee die dahinter steckt ist folgende: Stellen wir uns einfach einen Sandkasten vor und ein krummes Brett. Dieses lassen wir jetzt einfach über den Sand streichen und formen uns damit eine schöne Oberfläche. Als nächsten Schritt lassen wir das Brett nicht irgendwie frei bewegen, sondern die zwei Enden auf zwei im Raum gedacht liegende (Bézier-) Kurven.
Noch einen Schritt weiter, ersetzen wir das starre Brett durch eine veränderliches Kurvenlineal, welches seine Form während des Überstreichens des Sandes ändert. Diese Methode zur Erklärung wird gewählt, um sich den rechnerischen Weg zu erschließen. Dabei beschreibt das Kurvenlineal selbst natürlich wieder einer Bézierkurve, dessen Kontrollpunkte auf anderen Leit - Bézierkurven einfach abrollen. Die vier Randkurven der Bézierfläche sind damit Bézierkurven, die durch die jeweiligen Randpunkte gegeben sind.
Vorgegeben ist ein 3x4 Kontrollgitter, welches unsere Fläche festlegt.
Die drei Kontrollreihen mit je 4 Kontrollpunkten erzeugen jeweils eine blaue
Bézierkurve. Die eigentliche Fläche setzt sich nun aus Bézierkurven zusammen,
deren Kontrollpunkte auf diesen blauen Linien abwandern: Angefangen ganz unten
die grüne Kurve gegeben durch die drei gelben Kontrollpunkte - als nächstes
ein Beispiel aus der Mitte: die nächste grüne Bézierkurve gegeben durch die
abwandernden blauen Kontrollpunkte ... usw.
Einzelne Bézierkurven eingezeichnet.
Vorne liegend die Randkurve und deren 4 Kontrollpunkte.
Kommen wir im weiteren aber dazu, wie wir zwei Flächenstücke miteinander verbinden wollen: Letztendlich kann uns auch die Idee der Tensorproduktflächen und unser Wissen von den Bézierkurven helfen, hier eine Lösung zu erhalten. Zunächst anschaulich klar: Wollen wir zumindest ein lückenloses und überhangfreies Abschließen beider Flächen, müssen die Randpunkte des Kontrollnetzes beider Flächen in einander fallen. Damit entsteht jeweils am Rand beider Flächen die selbe Bézierkurve. Sollte der Übergang bei zwei zueinander koppelnde Kurven aber hinreichend glatt sein, mussten nicht nur der Kontrollpunkt des Randes übereinstimmen, sondern auch die beiden nächsten Kontrollpunkte mit diesem zusammenfallenden Punkt auf einer Linie liegen. Beim verbinden zweier Flächen bedeutet das: wir benötigen nicht nur die Randreihe des Kontrollpunkte, sondern auch die nächste dahinterliegende. Für Tangentenstetigkeit bedeutet das nun vereinfacht, dass alle Viereckspaare der jeweiligen Kontrollpolygone koplanar sein müssen - also in einer Ebene liegen.
2 biquadratische Bézierpatches (3x3 Kontrollgitter) verbunden
(die noch für die C1 (also nicht GC) nötigen Verhältnisse
lassen wir hier außer Acht)
Gelb schraffiert bedeutet in der selben Ebene liegend.
Allgemeiner lässt sich formulieren, dass ein (G)Ck Übergang von den ersten k Kontrollreihen abhängig ist - werden andere Kontrollpunkte dahinter verschoben, ändert sich an der Naht beider Flächen nichts. Der für uns interessante und ausreichende C1 Übergang bindet quasi die ersten beiden Kontrollreihen: Den Rand und die nächst liegende Reihe.