computeranimation

14. COMPUTERANIMATION

 

 

DU LERNST HIER...

 

wie du animierte Computergrafiken erstellst. Eine Animation besteht aus Einzelbildern, die sich nur wenig ändern und Schritt um Schritt zeitlich nacheinander dargestellt werden. Da das menschliche Auge nur rund 25 Bilder pro Sekunde erfassen kann, ergibt sich wie beim Film eine fliessende, ruckelfreie Bewegung, wenn die Bildfolge genügend schnell gezeigt wird. Die Bilder kannst du mit der Turtle zeichnen oder als Bilddateien laden.

 

 

MUSTERBEISPIEL

 

In deinem Beispiel programmierst du einen rotierenden Propeller. Da die animierte Figur mehrmals verwendet wird, ist es vorteilhaft, das Programm modular aufzubauen, d.h. die Figuren mit Hilfe von Funktionen darzustellen. Das macht dein Programm übersichtlicher. Mit Hilfe der Funktionen bogen(), blatt() und propeller() zeichnest du einen 3-blättrigen Propeller.

Den Animationsablauf kannst du so beschreiben:

Wiederhole:
     Figur zeichnen
     Kurze Zeit warten
     Figur löschen
     Die Turtle-Richtung ein wenig ändern

Einfache Figuren können gelöscht werden, indem man sie mit der Hintergrundfarbe übermalt. In der Regel ist es aber einfacher mit clear() das ganze Fenster zu löschen. clear("lightgray") löscht das Fenster mit hellgrauen Hintergrundfarbe.

 

Programm:    

from gturtle import *

def bogen():
    repeat 45:
        forward(3)
        right(2)
        
def blatt():
    startPath()
    bogen()
    right(90)
    bogen()
    left(150)
    fillPath()
    
def propeller():
    repeat 3:
        blatt()
        right(120)    
        
makeTurtle()
hideTurtle()
setFillColor("blue")

repeat:
    propeller()
    delay(40)
    right(4)
    clear()
► In Zwischenablage kopieren

 

Beispiel 2: Laufende Uhr
Zuerst schreibst du eine Funktion, die das Zifferblatt zeichnet. Der Zeiger wird alle 300 Millisekunden an einer neuen Position gezeichnet. Bevor du den Zeiger an der neuen Position darstellst, übermalst du den Zeiger an der alten Position mit der weissen Farbe.

 

Programm:    

from gturtle import *

def watchFace():
    setPenColor("black")
    penUp()
    repeat 12:
        forward(110)
        dot(10)
        back(110)
        right(30)
    penDown()
    
def hand():
    setPenWidth(5)
    forward(90)
    back(90)
    
makeTurtle()
hideTurtle()
watchFace()

a = 0
while True:
   setHeading(a) 
   setPenColor("red")
   hand()
   delay(300)
   setPenColor("white")
   hand()
   a += 30
► In Zwischenablage kopieren

 

 

MERKE DIR...

  Bei einer Animation wird in einer Wiederholschleife eine Figur jeweils eine kurze Zeit angezeigt, dann gelöscht und an einer leicht veränderten Position erneut angezeigt. Zum Löschen der Figur verwendest den Befehl clear() oder clear("color"), falls der Hintergrund nicht weiss ist. Dieser löscht das ganze Fenster, die Turtle bleibt aber an der aktuellen Position. Machmal ist es vorteilhaft nur die animierte Figur jeweils mit der Hintergrundfarbe zu übermalen, bevor sie an der neuen Position gezeichnet wird.

 

 

ZUM SELBST LÖSEN

 
1.

Zeichne ein einfaches Fahrzeug und lasse es von links nach rechts über das Turtlefenster "fahren".
Verbessern kannst du dein Programm noch wie folgt: wenn der Car am rechten Rand ankommt (getX() > 300), wird er wieder an die Ausgangsposition am linken Rand des Fensters versetzt.

 



2.

Eine Kugel bewegt sich hin und her von links nach rechts bis sie auf einer Wand reflektiert. Dann bewegt sie sich zurück, bis sie an der linken Wand reflektiert.

 

 
3.

Zeichne einen rotierenden Propeller, der aus vier rhombusförmigen Blättern besteht. Definiere zuerst eine Funktion blatt(), die einen grün gefüllten Rhombus zeichnet. Danach definierst du eine Funktion propeller(), die aus 4 Blättern besteht. In der Animationsschleife lässt du den Propeller um die eigene Achse rotieren.

 

 


 
4.
Zeichne eine Fahne und schwenke sie um den untersten Punkt der Fahnenstange hinauf und hinunter.  

 
5.

Erfinde selbst weitere Bilder, mit welchen du eine Computeranimation erstellen kannst.