Hoewel een grafiek heel handig kan zijn om een simulatie te visualiseren is het soms inzichtelijker een animatie te maken. Python biedt je de mogelijkheid om een figuur steeds opnieuw te tekenen. Dat geeft je verschillende mogelijkheden om een beweging aan te geven. We bouwen hier een kort voorbeeld, waarin we een lijn (en punt) volgens $f(x)=sin(x)$ over het scherm laten bewegen. We bouwen de functie op in 3 stappen waarbij we telkens 1 element toevoegen. Met behulp van deze functionaliteit kun je een groot scala aan animaties maken.
Als je een punt tekent (één $x$-waarde en één $y$-waarde) waarvan je $x$ en $y$ steeds verandert dan lijkt het of het punt over het scherm beweegt. In de code hieronder nemen we steeds stapjes in $x$, rekenen $y$ uit en tekenen het punt op het scherm. We gebruiken ook de commando's xlim en ylim om in de plot aan te geven welke $x$-waardes en $y$-waardes we willen zien.
Animaties in de CS50 IDE
Omdat de CS50 IDE normaal gesproken geen scherm heeft om de animaties in te tonen, zal je bij het opstarten van bovenstaand programma in eerste instantie een error te zien krijgen. Gelukkig hebben we daar een oplossing voor! Voer voordat je je programma opstart eerst het commando gui50 uit. Je krijgt dan een link waar je op kan klikken om een speciale GUI te openen. Wanneer je vervolgens in de CS50 IDE in een nieuwe terminal je programma opstart, krijg je de animatie te zien in het andere tabblad.
gui50 is op dit moment nog in beta. Mogelijk moet je af en toe de pagina opnieuw openen of op 'Connect' klikken. Mocht het niet werken, stel je vraag dan via Ed.
Een grafiek tekenen we met behulp van lijsten: een lijst met $x$-waardes en een lijst met $y$-waardes. Als je die lijsten steeds uitbreidt dan krijg je het onderstaande effect: de functie $f(x) = sin(x)$ getekend met een rode lijn.
Je kan de stip en de lijn ook tegelijk tekenen en op het scherm ook informatie weergeven over de $(x,y)$ positie van het punt op het scherm.