Animations

15 pendules qui battent...

Animation flash

Voici 15 pendules pesants agencés de telle façon que le premier fasse 50 battements en 60 secondes, que le deuxième en fasse 51, le troisième 52 et ainsi de suite. La dance de ces pendules est assez impressionnante ! Ceci est une simulation de ce qui est montré dans cette vidéo.


pendules.mp
verbatimtex
%&latex
\documentclass{minimal}
\usepackage[charter]{mathdesign}
\usepackage[utf8]{inputenc}
\begin{document}
etex
 
% dimension
u:=30cm;
 
% constante
g:=9.81; % gravitation
Pi:=3.14159;
% angle de départ, petit car approximation de sin
ThetaZ:=-Pi/12;
% nombre de pendule
nbrP:=15;
 
% origine
pair O;
O:=(0,0);
 
% fonctions
vardef sin(expr x) =
  sind(x/Pi*180)
enddef;
 
vardef cos(expr x) =
  cosd(x/Pi*180)
enddef;
 
% solution des équations du mouvement
vardef position(expr l,t)=
  save om;
  om:=sqrt(g/l);
  (-u*l*sin(ThetaZ*cos(om*t)),-u*l*cos(ThetaZ*cos(om*t)))
enddef;
 
% nos taleaux de longueurs et de position des 15 pendule
numeric l[];
pair pos[];
 
% le calcul des différetes longueur pour ajouter une oscillation par niveau
for i:=0 upto nbrP:
  l[i]=(60**2)/((50+i)**2)*g/(4*Pi*Pi);
endfor;
 
% l'image de la boule du pendule
picture Boule;
 
Boule:=image(
  fill fullcircle  scaled (0.02*u) withcolor white;
  draw fullcircle scaled (0.02*u);
  );
 
color fil;
fil:=(0.7,0.7,0.7);
 
compt:=0;
for t:=0 step (1/20) until 60:
  beginfig(compt);
    for i:=0 upto nbrP:
      pos[i]:=position(l[i],t);
      draw O--pos[i] withcolor fil;
      draw Boule shifted pos[i];
    endfor;
    draw unitsquare xscaled (.5u) yscaled (.4u) shifted (-.25u,-.4u) withcolor white;
  endfig;
  compt:=compt+1;
endfor;
 
end.