Animation des Pendels
Wir stellen nun das Foucaultsche Pendel als dreidimensionale Animation dar.
> | with(plottools): |
Warning, the assigned name arrow now has a global binding
> | Laenge:=10: tend:=30: frames:=100: for i from 0 by 1 to frames do Seila[i]:=curve([[0,0,Laenge],[Xa(i*tend/frames),Ya(i*tend/frames),Za(i*tend/frames,Laenge)]],thickness=2,color=blue): Massea[i]:=display(sphere([Xa(i*tend/frames),Ya(i*tend/frames),Za(i*tend/frames,Laenge)],0.03,color=red)): Seilb[i]:=curve([[0,0,Laenge],[Xb(i*tend/frames),Yb(i*tend/frames),Zb(i*tend/frames,Laenge)]],thickness=2,color=blue): Masseb[i]:=display(sphere([Xb(i*tend/frames),Yb(i*tend/frames),Zb(i*tend/frames,Laenge)],0.03,color=red)): Ania[i]:=display({Massea[i],Seila[i]}); Anib[i]:=display({Masseb[i],Seilb[i]}); od: |
> | display([seq(Ania[i],i=0..frames)],insequence=true,axes=normal); |
Wir stellen nun die Bewegung des Pendels projeziert auf die x-y--Ebene dar:
> | PXYa:=listplot([seq([Xa(t/25),Ya(t/25)],t=0..800)],color=black): PXYb:=listplot([seq([Xb(t/25),Yb(t/25)],t=0..800)],color=black): for i from 0 by 1 to frames do Massexya[i]:=display(disk([Xa(i*tend/frames),Ya(i*tend/frames)],0.03,color=red)): Massexyb[i]:=display(disk([Xb(i*tend/frames),Yb(i*tend/frames)],0.03,color=red)): Ani1a[i]:=display({Massexya[i],PXYa}); Ani1b[i]:=display({Massexyb[i],PXYb}); od: |
> | display([seq(Ani1a[i],i=0..frames)],insequence=true,axes=normal); display([seq(Ani1b[i],i=0..frames)],insequence=true,axes=normal); |
> | PXYa3d:=display(curve([seq([Xa(t/25),Ya(t/25),0],t=0..800)],color=black)): PXYb3d:=display(curve([seq([Xb(t/25),Yb(t/25),0],t=0..800)],color=black)): for i from 0 by 1 to frames do Cyla[i]:=display(cylinder([Xa(i*tend/frames),Ya(i*tend/frames),0],0.03,0.0005,color=green)): Cylb[i]:=display(cylinder([Xb(i*tend/frames),Yb(i*tend/frames),0],0.03,0.0005,color=green)): Ani2a[i]:=display({Massea[i],Seila[i],PXYa3d,Cyla[i]}); Ani2b[i]:=display({Masseb[i],Seilb[i],PXYb3d,Cylb[i]}); od: |
> | display([seq(Ani2a[i],i=0..frames)],insequence=true,axes=normal); display([seq(Ani2b[i],i=0..frames)],insequence=true,axes=normal); |