Aufgaben

Die Quelltexte zu verschiedenen Aufgaben sind in im Unterpaket aufgaben zu finden.

Aufgabe 1:

Schreiben Sie eine Java-Klassendeklaration für quadratische Bézier-Kurven. Berücksichtigen Sie für diese Klassen folgende Methoden:

  • Berechnen eines Punktes auf der Bézier-Kurve (abhängig vom Parameter t ),
  • Berechnen eines Punktes im Abstand a von der Bézier-Kurve (abhängig vom Parameter t ),
  • Berechnen der Kurvenlänge s = P0 - Pt einer Bézier-Kurve bis zum Parameterwert t,
  • Berechnen des Parameters t für die Kurvenlänge s = P0 - Pt (Pt = P(t )),
  • Transformieren in einen Streckenzug, der die Bézier-Kurve beliebig genau approximiert,
  • für die Ausgabe der Komponenten als String sowie zur Darstellung als Graphik.

Aufgabe 2:

Entwickeln Sie den Algorithmus von de Casteljau für eine Bézier-Kurve vom Grad n !

Aufgabe 3:

Ermitteln Sie die Stützpunkte einer kubischen Bézier-Kurve, die einen Viertelkreis vom Radius r = 1000 optimal approximiert!

Hinweis: Dazu gibt es eine passende Testklasse im Paket demos.

Aufgabe 4:

Schreiben Sie eine Java-Klassendeklaration für Catmull-Rom-Splines, die aus kubischen Bézier-Kurven (im ) zusammengesetzt sind. Berücksichtigen Sie für diese Klassen insbesondere die Methoden

  • zum Berechnen und zur Ausgabe der Kurvensegmente,
  • für die Ausgabe der Komponenten in einer Zeichenkette, sowie zur Darstellung als Graphik.

Aufgabe 5:

Entwerfen Sie die Java-Klassendeklaration für C²-stetige Splines, die aus Bézier-Kurven (im ) zusammengesetzt sind, und (wie bei den Catmull-Rom-Splines) die Parameter der Stetigkeits­bedingungen näherungsweise aus den benachbarten Stützpunkten bestimmen.

  • Welchen Grad müssen Bézier-Kurven besitzen, die als Spline-Segmente verwendet werden können?
  • Formulieren Sie die Stetigkeitsbedingungen an den Segmentgrenzen!