Home | Lehre | Videos | Texte | Vorträge | Software | Person | Impressum, Datenschutzerklärung | Blog RSS

Aufgabe 4: Keyframe-Animation

Schreiben Sie ein Java-Programm mit grafischer Ausgabe, das zweidimensionale Keyframe-Animation der Position demonstriert.

Jeder Keyframe ist durch x- und y-Koordinate x = (x,y) sowie Zeitpunkt t bestimmt. Ihr Programm soll von einer beliebigen, aber fest einkompilierten Folge von Keyframes mit aufsteigenden Zeitpunkten ausgehen. Es soll eine wenige Pixel große Kreisscheibe entsprechend dieser Folge an Keyframes und der enthaltenen Zeitangaben in Echtzeit auf dem Bildschirm bewegen.

Um zwischen den Keyframes weich zu interpolieren, benutzen Sie Hermite-Kurven (vergangenes Semester!), keine B-Splines, denn die würden die Keyframe-Positionen im Allgemeinen nicht exakt treffen. Zwischen je zwei aufeinanderfolgenden Keyframes (x0, t0) und (x1, t1) sitzt eine Hermite-Kurve:

x0 * (1-3(t-t0)2/(t1-t0)2+2(t-t0)3/(t1-t0)3) + v0 * (t-t0)(t1-t)2/(t1-t0)2 - v1 * (t-t0)2(t1-t)/(t1-t0)2 + x1 * (3(t-t0)2/(t1-t0)2-2(t-t0)3/(t1-t0)3)

Um diese festzulegen, benötigen Sie noch die Geschwindigkeitsvektoren v0 und v1 der Bahnkurve an den Keyframes. Diese berechnen Sie so:

Zur Wiedergabe des Bewegungsablaufs in Echtzeit können Sie zum Beispiel ein Timer-Objekt oder die Methode System.currentTimeMillis verwenden.

Beispiele für funktionale Ergänzungen, um vier Punkte für das Programm zu erreichen: