Sie braucht weniger Speicherplatz als das Polygon und

Ähnliche Dokumente
Approximationsverfahren für die Kurvendarstellung

0.1 Modellierung von Kurven und Flächen mittels B-Splines

Teil 2: Kurven und Flächen. Kurven und Flächen. Kurven. Parametrische Objekte. Kurven: 1D-Objekte Flächen: 2D-Objekte, basierend auf Kurven

Teil 2: Kurven und Flächen

Kurven. Markus Kraxner 22. Januar 2015

Computergraphik I. Freiformkurven. aus: Farin Curven und Flächen im CAGD. Oliver Deussen Freiformkurven 1

9. Parametrische Kurven und Flächen

Splines. Bézier-Kurven. Beispiel zur Approximation. Interpolation & Approximation. Schiffbau Automobilbau Architektur. f(x) f(x) =

Polynome im Einsatz: Bézier-Kurven im CAD

Darstellung von Kurven und Flächen

Oberflächenrepräsentationen Kontinuierliche Kurven Bezier-Kurven. Freiformflächen. Diskret

5 Interpolation und Approximation

Splines. Splines. Vom Gebilde zur Geometrie. Katharina Birner. Institut für Angewandte Geometrie Splines

Unterteilungskurven und -flächen

Splines und B-Splines

Dierentialrechnung mit einer Veränderlichen

Thema des Referats: Darstellung von Kurven und Flächen

11. Darstellung von Kurven und Flächen

H.J. Oberle Analysis II SoSe Interpolation

Kurven. Wie können oder sollten Kurven repräsentiert werden?

Numerisches Programmieren, Übungen

A1-1 Kubische Gleichung

6. Polynom-Interpolation

künstliches Objekt, dargestellt durch Anzahl von Punkten in Raum und Zeit (bei bewegten, animierten Objekten).

Die Abbildung (x 1 ;x 2 ) 7! (x 1 ;x 2 ; 1) ist eine Einbettung von R 2 in P 2 (als Mengen). Punkte mit z 6= 0 sind endliche" Punkte mit inhomogenen K

Kurven und Flächen. Interaktive Kontrolle und Präsentation komplexer Kurven und Flächen (=Modellierung) 3D Modellierung Prof. Dr.-Ing. H.-P.

Urs Wyder, 4057 Basel Funktionen. f x x x x 2

Bezier-Kurven. Hamid Fetouaki, Emma Skopin. 28. Januar Universität Kassel FB Mathematik/Informatik

Prüfungsdauer: 120 Minuten

KAPITEL 9 Splinefunktionen

Nachklausur am Donnerstag, den 7. August 2008

Computer-Graphik I Verallgemeinerte Baryzentrische Koordinaten

Brüche, Polynome, Terme

Kurven und Flächen. Vorlesung Ergänzung zur Graphischen Datenverarbeitung Sommersemester 2000 Johann-Wolfgang Goethe Universität, Frankfurt am Main

Vorkurs Mathematik WiSe 2017/18

Proseminar Bernsteinpolynome Bézier-Flächen. Dana Eckhardt Matr.-Nr:

Approximation durch Polynome

Kapitel 7. Interpolation und Approximation II. Inhalt: 7.1 Spline-Interpolation 7.2 Trigonometrische Interpolation 7.3 Tschebyscheff-Approximation

1. Anhang: Spline-Funktionen

Gliederung. Interpolation vs. Approximation. Gliederung (cont.)

Computergrafik / Animation. künstliches Objekt, dargestellt durch Anzahl von Punkten in Raum und Zeit (bei bewegten, animierten Objekten).

Klausur Mathematik I

Themen Lagrange-Interpolation Hermite-Interpolation. Splines. Bézier-Kurven. 5 Interpolation. Interpolation Die Lagrangesche Interpolationsaufgabe

Übungen mit dem Applet Kurven in Polarkoordinaten

Kurven 2. Ordnung in der affinen Ebene Durch Transformationen wird Vieles leichter

5 Numerische Mathematik

Darstellung von Kurven und Flächen

Proseminar HS Ebene algebraische Kurven Vortrag I.6. Duale Kurven. David Bürge 4. November 2010

Technische Universität München Zentrum Mathematik

Musterlösung zu den Übungen zur Vorlesung Mathematik für Physiker II. x 2

Interpolation und Approximation von Funktionen

( ) Dann gilt f(x) g(x) in der Nähe von x 0, das heisst. Für den Fehler r(h) dieser Näherung erhält man unter Verwendung von ( )

Klausur Numerische Mathematik (für Elektrotechniker), 24. Februar 2016

f(x) = 1 5 ex c Roolfs

Übungsblatt 3 Musterlösung

Computergrafik Inhalt Achtung! Kapitel ist relevant für CG-2!

Anleitung zu GeoGebra 3.0

5. Numerische Differentiation. und Integration

FH Gießen-Friedberg, Sommersemester 2010 Skript 9 Diskrete Mathematik (Informatik) 30. April 2010 Prof. Dr. Hans-Rudolf Metz.

Merksatz Begriff der Funktion

Dieses Kapitel vermittelt:

Vorkurs Mathematik 2016

Aufgabe 2: Analysis (WTR)

Aufgaben e-funktion. Gegeben sind die Funktionen f k (x) = x+k e x. a) Leite g(x) = 1 x k e x. ab.

Klassische Polynom Interpolation.

1 Einleitung. 1.1 Motivation. 6 Differentialgeometrie: Grundlagen Vorlesung 1

Analytische Lösung algebraischer Gleichungen dritten und vierten Grades

KLAUSUR zur Numerik I mit Lösungen. Aufgabe 1: (10 Punkte) [ wahr falsch ] 1. Die maximale Ordnung einer s-stufigen Quadraturformel ist s 2.

Algebraische Kurven. Holger Grzeschik

Interpolation und Approximation

b) Definieren Sie den Begriff Cauchy-Folge. c) Geben Sie zwei Beispiele für konvergente Folgen und deren jeweilige Grenzwerte an.

Weitere Beispiele zur Raumgeometrie

Differenzial- und Integralrechnung II

n=10! Vergleichen Sie Ihr Ergebnis mit der exakten Lösung! Lösung: Wir zerlegen das Intervall [a,b]=[1,2] in n Streifen der Breite h=.

Hallo Welt für Fortgeschrittene

Satz über implizite Funktionen und seine Anwendungen

13. Funktionen in einer Variablen

gekrümmte Flächen / Freiformflächen (analog zur Kurvendarstellung)

Geometrisches Modellieren - Körper -Modelle Repräsentationsschemata Primitive Instancing Decomposition Models Constructive Models

Numerik für Ingenieure I Wintersemester 2008

Polynominterpolation mit Matlab.

1. Aufgabenblatt zur Algebra II

y f(t)dt in eine Taylorreihe um (0,0). Für welche (x,y) konvergiert diese Reihe gegen F(x,y)? x 5! x7 7! +... = 2 3! x ! x !

Mathematik I Herbstsemester 2018 Kapitel 4: Anwendungen der Differentialrechnung

Topologie und Differentialrechnung mehrerer Veränderlicher, SS 2009 Modulprüfung/Abschlussklausur. Aufgabe Punkte

Umkehrfunktion. g (y) = f (x) 1, x = g(y), Umkehrfunktion 1-1

Spline Morphing. Softwarepraktikum im IWR. Carl Friedrich Bolz. Carl Friedrich Bolz

B-Spline-Kurve und -Basisfunktionen

In der Praxis werden wir häufig mit relativ komplexen Funktionen konfrontiert. y

5. Numerische Differentiation. und Integration

Affininvariante Fourierdeskriptoren

Lösung zu Serie 2. D-ERDW, D-HEST, D-USYS Dr. Ana Cannas. Mathematik II FS März 2016

Glatte Kurven aus diskreten Punkten

Worksheet zur Hauptachsentransformation

Numerisches Programmieren, Übungen

Transkript:

Kapitel 7 Kurven Die bisher besprochenen 2D-Objekte haben bis auf den Kreis den Nachteil, daß sie im weitesten Sinne eckig sind. Wenn ein Objekt mit runder Form verlangt wird, z.b. ein Herz, ein Schiffsrumpf, ein Kotflügel oder ein Flugzeugflügel, kann entweder ein Polygon mit einer sehr großen Anzahl von Eckpunkten verwendet werden oder eine Kurve. Die Kurve hat dabei zwei Vorteile: Sie braucht weniger Speicherplatz als das Polygon und sie bleibt glatt wenn man sie aus der Nähe betrachtet. Kurven entstammen dem Computer Aided Geometric Design (CAGD), einer Disziplin, die sich mit der computerinternen Darstellung von Objekten beschäftigt, die aus der Geometrie stammen. Problem: Spezifiziere und zeichne eine beliebige glatte Kurve. 7.1 Algebraischer Ansatz Gegeben n + 1 Stützpunkte. Bestimme Polynom n-ten Grades y = a n x n + a n 1 x n 1 +... + a 1 x + a 0 welches durch alle Stützpunkte läuft. Problem: Bei der Auswertung des Polynoms treten wegen der hohen Potenzen hohe Rechenzeiten, große Rundungsfehler und Oszillationen auf. 7.2 Kubische Splines Gegeben n + 1 Stützpunkte. Wähle n Kurven (Polynome) kleiner Ordnung für den Verlauf innerhalb der n Intervalle. Kurven erster Ordnung (Geraden) ergeben nur den Linienzug. Ein solcher Linienzug ist C 0 -stetig, da die einzelnen Linien an den Stützpunkten dieselben x-und y-werte haben. 71

72 KAPITEL 7. KURVEN Kurven zweiter Ordnung (Parabeln) kann man so wählen, daß sie an den Intervallgrenzen einmal stetig differenzierbar (C 1 -stetig) sind. Geometrisch bedeutet das, daß dort nicht nur die Orte übereinstimmen, sondern auch die Steigungen. Mit Parabeln lassen sich nur Kegelschnitte darstellen; die Einsatzmöglichkeiten sind also begrenzt. Kurven dritter Ordnung mit stetigen ersten und zweiten Ableitungen (C 2 -stetig) an den Intervallgrenzen (kubische Splines) können zu einer Gesamtkurve mit weichen Übergängen an den Nahtstellen zusammengesetzt werden. weich heißt, daß das Auge der gezeichneten Kurve nicht mehr ansehen kann, wo die Stützpunkte liegen. Neben der Steigung ist auch die Krümmung identisch. Dies sind die einfachsten Kurven, mit denen sich bereits komplexe Formen erzeugen lassen. Gesucht: Approximation einer Kurve f (t), die durch n + 1 vorgegebene Punkte laufen soll mithilfe von n Kurvenabschnitten. Bemerkung: f wird in parametrisierter Form ermittelt (d.h. x = g(t), y = h(t)), da die explizite Form y = f (x) pro x-wert nur einen y-wert erlaubt. Die n + 1 Stützpunkte seien f (t i ), die resultierenden Intervalle seien [t i,t i+1 ], die für das Intervall i zuständige Funktion sei f i (t), 1 i n. Jedes f i hat die Form Es muß gelten f i (t) = f (t i ) + a i (t t i ) + b i (t t i ) 2 + c i (t t i ) 3 t i t t i+1, i = 1,...,n f i (t i ) = f i+1 (t i ) für i = 1,...,n 1 gleicher Wert f i (t i) = f i+1 (t i) für i = 1,...,n 1 gleiche Steigung f i (t i) = f i+1 (t i) für i = 1,...,n 1 gleiche Steigungsänderung Durch Festlegung von f (t 0 ) = f (t n ) = 0 wird das Gleichungssystem abgeschlossen. Für die Folge t i reicht jede monoton wachsende Folge. Geeignet ist z.b. die Folge der euklidischen Abstände zwischen den Stützpunkten. Statt den Abstand d = dx 2 + dy 2 zu berechnen, verwendet man die Näherungsformel 1 3 ( dx + dy + 2 max( dx, dy )). 7.3 Bézier-Kurven Spezifiziere die Kurve durch n + 1 Stützpunkte P 0,P 1,...,P n. Die Kurve läuft nicht durch alle Stützpunkte, sondern wird von ihnen beeinflußt. Zeitgleich in den 1960 ern entwickelt von P. Bézier bei Renault und von P. de Casteljau bei Citroen. Damals sollten Karosserien entworfen werden, die den ästhetischen Ansprüchen der Designer und den technischen Ansprüchen der Ingenieure genügten. P(t) = n i=0 B i,n (t) P i, 0 t 1 Der Punkt P i wird gewichtet mit Hilfe eines Bernstein-Polynoms. B i,n (t) = n! i! (n i)! ti (1 t) n i, i = 0,...,n

7.3. BÉZIER-KURVEN 73 Abbildung 7.1: Vom Spline-Algorithmus erzeugte Kurveninterpolation!" # Abbildung 7.2: Verlauf der Bernsteinpolynome für n=3 Die wichtigsten Eigenschaften der Bernsteinpolynome: alle Bernsteinpolynome sind positiv auf [0,1], für jedes feste t gilt n i=0 B i,n(t) = 1, B i,n (t) = B n i,n (1 t), db i,n(t) dt = n (B i 1,n 1 (t) B i,n 1 (t)),i > 0, Maxima von B i,n (t) in [0,1] an den Stellen t = i n,i = 0,...,n. Da alle Bernsteinpolynome für 0 < t < 1 ungleich Null sind, beeinflussen alle Stützpunkte in diesem Intervall den Kurvenverlauf. Die Kurve beginnt im Stützpunkt P 0 tangential zur Geraden P 0 P 1, endet im Stützpunkt P n tangential zur Geraden P n 1 P n und verläuft innerhalb der konvexen Hülle der Stützpunkte. Somit können

74 KAPITEL 7. KURVEN mehrere Bézier-Kurven aneinandergesetzt werden durch Identifikation von Endpunkt und Anfangspunkt aufeinanderfolgender Bézierkurven. Einen stetig differenzierbaren Übergang erreicht man bei Kollinearität der Punkte P n 1,P n = Q 0,Q 1. Berechnung der Bézier-Kurve nach de Casteljau Um die aufwendige Auswertung der Bernsteinpolynome zu vermeiden, wurde von de Casteljau ein Iterationsverfahren vorgeschlagen, welches durch fortgesetztes Zerteilen von Linien den gewünschten Kurvenpunkt approximieren kann. Es gilt: P(t) 0,n = (1 t) P(t) 0,n 1 +t P(t) 1,n wobei die tiefgestellten Indizes angeben, welche Stützpunkte in die Berechnung einfließen. D.h. eine Bézier-Kurve vom Grad n läßt sich durch zwei Bézier-Kurven vom Grad n 1 definieren, indem für ein festes t die Punkte beider Kurven berechnet werden, und die Verbindungsstrecke im Verhältnis t geteilt wird. P 0 = Q 0 P 3 = Q 3 Q 01 Q 012 Q 0123 = P( 1 3 ) Q 23 Q 123 P 1 = Q 1 Q 12 P 2 = Q 2 Abbildung 7.3: Approximation einer Bezier-Kurve nach de Casteljau Abbildung 7.3 zeigt die Berechnung eines Kurvenpunktes für t = 1 3. Die Indizes geben an, welche Stützpunkte beteiligt sind. Abbildung 7.4 zeigt das Ergebnis dieser Iteration für zwei aneinanderliegende kubische Bézierkurven (Rekursionstiefe 3).

7.3. BÉZIER-KURVEN 75 Abbildung 7.4: Vom De Casteljau-Algorithmus mit Rekursionstiefe 3 gezeichnete Bezierkurven /**************************************************************************/ /* */ /* Zeichnen einer Bezierkurve 3. Grades nach De Casteljau */ /* */ /**************************************************************************/ private void bezier( double px0, double py0, // mit Stuetzpunkt p0 double px1, double py1, // mit Stuetzpunkt p1 double px2, double py2, // mit Stuetzpunkt p2 double px3, double py3, // mit Stuetzpunkt p3 int depth) // aktuelle Rekursionstiefe { double qx01,qy01,qx12,qy12,qx23,qy23, // Hilfspunkte qx012,qy012,qx123,qy123,qx0123,qy0123; if (depth == 0) drawline(new Point( (int)px0, (int)py0), new Point( (int)px3, (int)py3)); else { depth--; // Iterationstiefe erreicht // Linie zeichnen } } } qx01 = (px0+px1)/2; qy01 = (py0+py1)/2; qx12 = (px1+px2)/2; qy12 = (py1+py2)/2; qx23 = (px2+px3)/2; qy23 = (py2+py3)/2; qx012 = (qx01+qx12)/2; qy012 = (qy01+qy12)/2; qx123 = (qx12+qx23)/2; qy123 = (qy12+qy23)/2; qx0123 = (qx012+qx123)/2; qy0123 = (qy012+qy123)/2; bezier(px0,py0,qx01,qy01,qx012,qy012,qx0123,qy0123,depth); bezier(qx0123,qy0123,qx123,qy123,qx23,qy23,px3,py3,depth);

76 KAPITEL 7. KURVEN 7.4 B-Splines Es sollen nun nicht alle Stützpunkte Einfluß auf den gesamten Kurvenverlauf haben und der Grad der Polynome soll unabhängig von der Zahl der Stützpunkte sein. Spezifiziere die Kurve durch n + 1 Stützpunkte P 0,...,P n, und einen Knotenvektor T = (t 0,t 1,...,t n+k ),t j t j+1 und Polynome N i,k P(t) = n i=0 N i,k (t) P i Die Punkte P i wirken sich nur auf maximal k Kurvenabschnitte aus und werden gewichtet durch die Basis des B-Splines, Polynome N i,k (t), abschnittsweise vom Grad k 1 (0 i n) : N i,1 (t) = N i,k (t) = { 1 falls ti t < t i+1 (7.1) 0 sonst t t i N i,k 1 (t) + t i+k t N i+1,k 1 (t), k > 1 (7.2) t i+k 1 t i t i+k t i+1 Bei Division durch Null wird der Quotient gleich 0 gesetzt. Durch die Wahl von k und T geht jeder Stützpunkt auf einzigartige Weise in die Kurve ein. T kann entweder uniform (die t j sind äquidistant) oder nicht uniform gewählt werden. Jede der beiden Arten kann offen (Anfang und Ende von T bestehen jeweils aus k-mal dem kleinsten bzw. größten t j ) oder periodisch (es ergeben sich periodische Gewichtungspolynome, die durch einfaches Verschieben auseinander hervorgehen) sein. Der Knotenvektor wird häufig wie folgt gewählt für 0 j n + k: 0 falls j < k t j = j k + 1 falls k j n n k + 2 falls j > n Hierdurch wird t im Intervall [0, n k + 2] definiert. Beispiel: k = 3, n = 4 ergibt einen offenen uniformen quadratischen B-Spline mit dem Knotenvektor T = (0,0,0,1,2,3,3,3). Die Stützpunkte P 0,P 1,P 2,P 3,P 4 haben nur lokal Einfluß auf den Kurvenverlauf, und zwar in den Intervallen t [0,1],[0,2],[0,3],[1,3],[2,3]. Sonderfall Für k = n + 1 ergibt sich für den Knotenvektor der Sonderfall T = (0,...,0,1,...,1). }{{}}{{} k mal k mal Die zugehörigen B-Splinefunktionen haben die schon bekannte Form N i,k (t) = (k 1)! i! (k 1 i)! ti (1 t) k 1 i, i = 0,...,k 1

7.4. B-SPLINES 77 Abbildung 7.5: Verlauf der Gewichtungspolynome N i,k für k = 3 Somit lassen sich also die B-Splinefunktionen als Verallgemeinerung der Bernsteinpolynome auffassen. Wie bei den Bernsteinpolynomen gilt auch für die B-Splinefunktionen N i,k, daß sie positiv sind, und n i=0 N i,k = 1. Abbildung 7.6: B-Spline mit n = 6, k = 4 und 35 Interpolationspunkten Eigenschaften B-Splines haben zwei weitere Eigenschaften, die für den praktischen Einsatz von großem Interesse sind: Sie verlaufen innerhalb des aus den Stützpunkten gebildeten konvexen Polygons (konvexe Hülle.

78 KAPITEL 7. KURVEN Sie sind invariant unter affinen Abbildungen. Konvexe Hülle Die Kurvenpunkte eines B-Splines ergeben sich durch eine baryzentrische Kombination der Stützpunkte. Da die Gewichtungspolynome für alle Parameterwerte t größer oder gleich Null sind, handelt es sich sogar um eine konvexe Kombination. Deren Werte liegen innerhalb der konvexen Hülle der Stützpunkte. 7.5 Affine Abbildungen und Invarianz Affine Abbildungen bestehen aus einer linearen Abbildung und einem translativen Anteil: B x = A x + t Es handelt sich um eineindeutig umkehrbare Abbildungen, bei denen Geradlinigkeit, Zusammengehörigkeit (Objekt wird nicht zerissen), Parallelität und Teilverhältnisse auf jeder Geraden erhalten bleiben. Wogegen Positionen, Längen, Winkel, Flächeninhalte und Orientierungen (Umlaufsinn) sich ändern können. Alle bisher in der Vorlesung behandelten Transformationen sind affine Abbildungen. Invarianz unter linearen Abbildungen bedeutet in diesem Zusammenhang, daß es keinen Unterschied macht, ob erst die Kurve gezeichnet und dann jeder der gezeichneten Kurvenpunkte abgebildet wird oder ob die Stützpunkte abgebildet werden und die Kurve dann auf Basis diese neuen Stützpunkte gezeichnet wird.

7.6. NURBS 79 7.6 NURBS Über die Eigenschaften der B-Splines hinaus, wäre für den 3D-Fall auch eine Invarianz unter projektiven Abbildungen wünschenswert, da dort die 3D-Kurven auf den 2D-Bildschirm projeziert werden müssen. Um möglichst große Freiheit bei den darzustellenden Formen zu haben, sollten die Kurven beliebige Kegelschnitte (also Kreise, Parabeln und Hyperbeln) annähern können, wie sie in Abbildung 7.7 gezeigt werden. Parabel Hyperbel Kreis Ellipse Abbildung 7.7: Kreis, Ellipse, Parabel und Hyperbel erzeugt durch Kegelschnitte Beide Wünsche werden von der allgemeinsten Form zum Zeichnen von Kurven erfüllt. Es handelt sich dabei um NURBS (nonuniform rational basis splines). P(t) = n i=0 R i,k (t) P i mit R i,k (t) = h i N i,k (t) n j=0 h j N j,k (t) Nonuniform bedeutet, dass die Knoten auf dem Knotenvektor nicht äquidistant sein müssen; rational bedeutet, dass die Gewichtung eines Kontrollpunktes durch den Quotienten zweier Polynome definiert wird. Abbildung 7.8 zeigt den Einfluss der Gewichte auf den Verlauf der Kurve. Ein Gewicht h 2 > 1 verschiebt die Kurve in Richtung Kontrollpunkt P 2, ein Gewicht h 2 < 1 verringert den Einfluss von Kontrollpunkt P 2 (und erhöht dadurch den Einfluss von Kontrollpunkt P 1. Zur Berechnung von NURBS-Kurven bedient man sich der homogenen Koordinaten: Zunächst wird ein Punkt P i (x i,y i ) T in seine homogenen Koordinaten P(x i,y i,1) T überführt und dann mit seinem Gewicht h i multipliziert. Die so entstandenen Punkte P i (w i x i,w i y i,h i ) T werden nun mit den Gewichtspolynomen N i,k verarbeitet: P (t) = n i=0 N i,k(t) P i

80 KAPITEL 7. KURVEN P h 1 2 =1 P 1 P 2 h 2 > 1 h 2 < 1 P 3 P 0 Abbildung 7.8: Einfluss des Gewichtes auf den Verlauf der Kurve Zur Anzeige der errechneten Kurve werden die homogenen Koordinaten durch Division der dritten Komponente in Punktkoordinaten überführt: (x,y,z) T ( x z, y z )T NURBS bieten gegenüber B-Splines einige Vorteile: NURBS sind eine Verallgemeinerung der B-Splines. Für h i = 1 i reduziert sich die NURBS- Kurve zur entsprechenden B-Spline-Kurve. NURBS sind invariant bzgl. perspektivischer Projektion. Dies bedeutet, daß zur Projektion einer Kurve nicht alle Kurvenpunkte projeziert werden müssen, sondern es reicht, die Stützpunkte zu projezieren und dann zu einer Kurve zu verbinden. NURBS sind (im Gegensatz zu nicht-rationalen B-Splines) in der Lage, Kreise zu beschreiben. Abbildung 7.9 zeigt die 8 Kontrollpunkte zusammen mit ihren Gewichten für den Einheitskreis mit Radius 1. Der zugehörige Knotenvektor lautet (0,0,1,1,2,2,3,3,4,4), wobei der erste und der letzte Kontrollpunkt jeweils doppelt benutzt werden. Abbildung 7.9: Kreis erzeugt durch NURBS

7.7. JAVA-APPLET ZU SPLINES 81 7.7 Java-Applet zu Splines Abbildung 7.10: Screenshot vom Splines-Applet