Die formale Übereinstimmung von (2.35)
und (1.34) legt es nahe, Funktionen auf einer
Splinefläche wieder durch Splines darzustellen. Sei die biquadratische
Splinefläche durch (2.1) mit
gegeben. Eine Funktion
auf dieser Fläche beschreiben
wir als biquadratischen Spline in der Form
Sei analog eine Funktion
auf dem Flächenstück
durch
![]() |
(2.37) |
Ist die Fläche durch ein semi-reguläres Kontrollnetz gegeben, beschreiben wir eine Funktion auf dieser Fläche, indem wir zu jedem Kontrollpunkt der Fläche einen Kontrollpunkt für die Funktion angeben. Diese Form der Darstellung einer Funktion ist z.B. zur Darstellung von Meßwerten auf glatten Oberflächen geeignet.
Sowohl die Fläche als auch die Funktion werden dann durch
biquadratische G-Splines dargestellt. Neben der Umwandlung des
semi-regulären Kontrollnetzes in Bézierkontrollnetze durch den
Algorithmus 1.2 muß auch das
Kontrollnetz für die Funktion in Bézierkontrollnetze umgewandelt werden.
Nachdem und
bereits durch die Fläche bestimmt werden,
können hierfür die gleichen Formeln wie für die Flächenkontrollpunkte
verwendet werden. Dazu müssen wir den
Algorithmus 1.2 erweitern. Zusätzlich
muß zu jedem Flächenkontrollpunkt der Funktionskontrollpunkt gefunden
werden und das Bézierkontrollnetz für die Funktion analog zu dem für die
Fläche berechnet werden. Ein Funktionsobjekt stellen wir dabei durch
eine von Object abgeleitete Klasse Function dar. Sie
enthält einen Zeiger auf die zugehörige G-Spline-Fläche und auf die
Map Klasse. Die Map Klasse ist eine Liste, die jedem
Kontrollpunkt der Fläche einen Kontrollpunkt der Funktion zuweist.
Die Struktur ist grob in Abbildung 2.2
dargestellt. Details zur Implementierung des Algorithmus und der
Klassen stehen in Kapitel 4 und im Anhang A.
Die Struktur des Algorithmus' 1.2
ändert sich nicht.
Wird auf das Flächenkontrollnetz der Doo-Sabin-Algorithmus 1.3 angewendet, muß auch das Funktionskontrollnetz mit bearbeitet werden. Wie bei der Umwandlung in Bézierkontrollnetze müssen hier die gleichen Formeln auf die Kontrollpunkte der Funktion angewandt werden. Dazu wird der Algorithmus 1.3 so erweitert, daß er neben den Flächenkontrollpunkten auch gleich die Kontrollpunkte aller auf dieser Fläche definierten Funktionen in ein neues Kontrollnetz umwandelt.
Nachdem das Kontrollnetz der Funktion in Bézierkontrollnetze
umgewandelt worden ist, haben wir mehrere Möglichkeiten, die Funktion
darzustellen. Es bietet sich zunächst an, den Betrag des
Funktionswertes in eine Farbe umzuwandeln und die Fläche selbst
entsprechend einzufärben. Zu einem gegebenen Punkt auf der Fläche
berechnen wir den zugehörigen Farbwert
aus der über das
Bézierkontrollnetz berechneten Funktion. Für skalarwertige
Funktionen erhalten wir den Farbwert aus
![]() |
(2.38) |
![]() |
(2.39) |
![]() |
(2.40) |
![]() |
(2.41) |
![]() |
(2.42) |
![]() |
(2.43) |
![]() |
(2.44) |
Alternativ können wir die Funktionswerte auch durch Stacheln auf der Fläche darstellen. Dazu zeichnen wir eine Strecke vom einem Punkt
Die verschiedenen Darstellungsarten lassen sich auch miteinander verknüpfen und sie können mittels eines einzigen Alogrithmus' berechnet werden. Zu jedem biquadratischen Bézierkontrollnetz der Funktion suchen wir zunächst das zugehörige Bézierkontrollnetz der Fläche. Wird schon beim Erzeugen der Bézierkontrollnetze hierauf Rücksicht genommen, können die Kontrollnetze in der gleichen Reihenfolge in jeweils einer Liste abgelegt werden, so daß wir nur noch beide Listen gleichzeitig durchlaufen müssen. Wir legen dann ein Gitter über den Parameterbereich und je nach ausgewählter Darstellungsart berechnen wir den Punkt auf der Fläche, die Flächennormale und den Funktionswert an den Gitterknoten. Die Stacheln, Vektoren und Gitternetze können direkt als Linien dargestellt werden. Für die farbigen Flächen unterteilen wir jedes Quadrat in zwei Dreiecke. Über die Farbwerte an den Ecken lassen sich dann einfach die Farbverläufe auf den Dreiecken bestimmen.
Mit Hilfe der Stacheln kann man z.B. das Einheitsnormalenfeld einer Fläche darstellen. Dazu verwenden wir einfach eine konstante Funktion auf dieser Fläche. Abbildung 2.4 zeigt das Einheitsnormalenfeld einer Acht-Fläche. Die Kontrollpunkte der Fläche wurden durch
![]() ![]() |
(2.45) |
In Abbildung 2.6 stellen wir näherungsweise das Potential
eines statischen Dipols in der -
-Ebene dar. Die Fläche ist ist dabei
der durch die Kontrollpunkte
mit
bestimmte Teil der
-
-Ebene. Die Kontrollpunkte der
Potentialfunktion wurden durch die Funktion
![]() ![]() |
(2.46) |