Oui j'ai reçu il y a longtemps (3 janvier 2010) un fichier d'animation de Fabrice.
Et depuis, je n'ai pas donné de nouvelle ni même créé un avatar !
Code : Tout sélectionner
import geometry;
import animate;
import graph;
settings.tex="pdflatex";
//settings.outformat="pdf"; // version originale
//settings.pdfviewer="xpdf"; // version originale
//settings.render=4; //version originale
unitsize(1cm);
arrowbar tempArrow =Arrow(HookHead,3bp);
animation Anim,anim;
path lieu;
real T[];
real Aire;
pen p=fontsize(8pt);
point C=(0,0), B=(6,0), A=(10,0);
circle c=circle(A,C);
arc a=arc(c,0,180);
draw(a);
draw(A--C);
label("A",A,2S,p);
label("B",B,2S,p);
label("C",C,2S,p);
for (int i=0; i<=180; i+=5){ //++i dans l'original
save();
point M=angpoint(a,i);
triangle t=triangle(A,M,B);
draw(t,red);
draw(arc(c,A,M),red);
filldraw(M--A--B--cycle,lightgreen,blue);
label("M",M,dir(B--M),red+p);
dot(M,red);
picture pic;
unitsize(pic,1cm);
ylimits(pic,0,12);
xlimits(pic,0,16);
// show(pic,defaultcoordsys);//La routine show() ne semble pas fonctionner avec les fonctions xlimits() et ylimits(); les axes s'adaptent aux dimensions de l'image pic.
xaxis(pic,"$x$",p,tempArrow);
yaxis(pic,"$y$",p,tempArrow);
Aire=10*sin(arclength(arc(a,A,M))/5);
T.push(Aire);
label(pic,""+string(Aire,4),(14,10),p+blue);
label(pic,""+string(arclength(arc(a,A,M)),4),(13,10),p+blue);
point P=(arclength(arc(a,A,M)),Aire);
lieu=lieu--P;
draw(pic,lieu,blue);
anim.add(pic);
Anim.add();
restore();
}
for (int i=0; i < Anim.pictures.length; ++i){
add(Anim.pictures[i],anim.pictures[i].fit(),1.1*A);
}
Anim.movie();
Pourquoi vouloir show(pic,defaultcoordsys) ?
Je pense que l'on peut réduire à une seule variable animation, en ajoutant
à l'intérieur de la boucle la figure de l'aire. Le tableau T n'est pas utile je crois.
O.G. qui ne sait pas comment les animations sont gérées par le forum, mais ça risque
la surchage tout de même.