Das Beispiel zeigt, wie mit dem Modul VPython die Pendelbewegung eines Fadenpendels im 3D-Raum animiert werden kann.
Die Pendelbewegung eines Fadenpendels wird durch zwei Differenzialgleichungen 1. Ordnung beschrieben:
\[\frac{d\varphi }{dt} =\omega \]
\[\frac{d\omega }{dt} =-\frac{g}{l} \sin \varphi \]
Dieses DGL-System lässt sich leicht mit dem einfach zu implementierenden und ressourcenschonenden Euler-Verfahren lösen.
#Animation einer Pendelbewegung
from vpython import *
y0=-5. #Verschiebung y-Achse
b=5. #Breite der Decke
l=8. #Länge des Pendels
phi=45. #Auslenkung
r=0.5 #Radius der Kugel
scene.width=600
scene.height=600
scene.center =vector(0,y0,0)
scene.range=1.5*b
scene.background = color.white
box(size=vector(b,b/20.,b/2.),color=color.gray(0.8)) #Decke
stange=cylinder(axis=vector(0,l,0),radius=0.05)
masse = sphere(radius=r,color=color.red)
masse.pos=vector(0,stange.pos.y,0)
g=9.81 #Erdbeschleunigung
w02=g/l #Quadrat der Kreisfrequenz
phi=radians(phi)
w=0. #Anfangswinkelgeschwindigkeit
dt=0.02 #Zeitschrittweite
while True: #Beginn der Animationsschleife
rate(100) #Wiederholungen pro Sekunde
phi=phi+w*dt #Lösung der DGL
w=w-w02*sin(phi)*dt #mit dem Eulerverfahren
x= l*sin(phi) #x-Koordinaten berechnen
y=-l*cos(phi) #y-Koordinaten berechnen
stange.axis=vector(x,y,0)
masse.pos =vector(x,y,0)
Nach dem Start des Programms schwingt das Pendel im virtuellen 3D-Raum des Browserfensters. Bei jedem Durchlauf der while-Schleife bewegt sich das Pendel um den Betrag des Winkels ω⋅dt. Durch die Änderung der Zeitschrittweite dt kann man die Geschwindigkeit der Pendelbewegung beeinflussen. Das DGL-System wird mit dem Summenalgorithmus des Euler-Verfahrens gelöst. Die Dämpfung wurde nicht berücksichtigt.