settings.tex="pdflatex"; settings.outformat="pdf"; import geometry; import animation; animation A; size(7.5cm,0); point A1=(0,0),B1=(2,-1),C1=(1,3),D1=(-2,2), A2=(3,5),B2=(6,8),C2=(7,7),D2=(5.5,4); point barA,barB,barC,barD; pen couleur1a=red+opacity(.8), couleur2a=blue+opacity(.8), couleur3a; pen couleur1b=green+opacity(.8), couleur2b=red+opacity(.8), couleur3b; path quadri1=A1--B1--C1--D1--cycle, quadri2=A2--B2--C2--D2--cycle; filldraw(quadri1,couleur1a,couleur1b); filldraw(quadri2,couleur2a,couleur2b); for (real k=0; k <=1; k+=0.01) { save(); barA=(1-k)*A1+k*A2; barB=(1-k)*B1+k*B2; barC=(1-k)*C1+k*C2; barD=(1-k)*D1+k*D2; couleur3a=(1-k)*couleur1a+k*couleur2a; couleur3b=(1-k)*couleur1b+k*couleur2b; filldraw(barA--barB--barC--barD--cycle, couleur3a+opacity(.8),couleur3b+opacity(.8)); picture pic; add(pic,bbox(2mm)); A.add(pic); restore(); } for (real m=0; m <=1; m+=0.01) { save(); real k=1-m; barA=(1-k)*A1+k*A2; barB=(1-k)*B1+k*B2; barC=(1-k)*C1+k*C2; barD=(1-k)*D1+k*D2; couleur3a=(1-k)*couleur1a+k*couleur2a; couleur3b=(1-k)*couleur1b+k*couleur2b; filldraw(barA--barB--barC--barD--cycle, couleur3a+opacity(.8),couleur3b+opacity(.8)); picture pic; add(pic,bbox(2mm)); A.add(pic); restore(); } A.movie(); // remplacer par la ligne suivante // label(A.pdf(BBox(1mm,nullpen),delay=500,"controls,loop")); // pour obtenir une animation dans une seule page d'un pdf. // controls : pour obtenir les boutons, // loop : pour que cela tourne en boucle par défaut.