Page 2 sur 2

Re: Nom de fichier et fonction void()

Posté : sam. 16 févr. 2013, 23:20
par GM
J'ai repris l'un des codes précédents (sans chercher à le comprendre en détail) pour ajouter ce que j'ai dit :

Code : Tout sélectionner

unitsize(1cm);
import geometry;
void Triangle (picture pic=currentpicture, int a, pair pos=(0,0))
{
    transform t=shift(pos); 
    pair z0=(0,0);
    pair z1=z0+a;
    pair z2=a/2*(1,sqrt(3));
    pair[] Z1, Z2, Z3;
    filldraw(pic,t*(z0--z1--z2---cycle),green,blue);
    for(int i=1 ; i<a; ++i){
      Z1.push(scale(i/a,z0)*z1);
      Z2.push(scale(i/a,z1)*z2);
      Z3.push(scale(i/a,z0)*z2);
    }
    for(int i=0 ; i<=a-2 ; ++i){
      draw(pic,t*(Z3[i]--Z2[i]),blue);
      draw(pic,t*(Z1[i]--Z3[i]),blue);
      draw(pic,t*(Z1[i]--Z2[a-2-i]),blue);
    }
    label(pic,format("\textbf{T\boldmath{$_{%i}$}}",a),pos+a/2,2*S);
}
 
int val[]={1,2,3,7};
for(int k:val) {
    Triangle(k);
    shipout("fig_triangle_T"+string(k));
    erase();
}

Re: Nom de fichier et fonction void()

Posté : sam. 16 févr. 2013, 23:50
par Fabrice
Re,
J'avais oublié la routine erase() :?
Merci.

Re: Nom de fichier et fonction void()

Posté : dim. 17 févr. 2013, 09:55
par GM
Fabrice a écrit :J'avais oublié la routine erase() :?

C'est parce que j'avais anticipé cet oubli fréquent que j'avais écrit :
... lorsque les éléments sont dessinés dans currentpicture... qu'il faut penser à vider avant de passer à la figure suivante ;

;)

Maintenant... tu peux opter pour la solution 2. où tu n'auras pas à l'ajouter :

  1. tu supprimes le unitsize de début de script inutile si tu ne dessines pas dans currentpicture ;
  2. tu remplaces la fin par :

    Code : Tout sélectionner

    int val[]={1,2,3,7};
    for(int k:val) {
        picture pic; unitsize(pic,1cm);
        Triangle(pic,k);
        shipout("fig_triangle_T"+string(k),pic);
    }

-------

Mais au final, rappelons que si l'intention est de mettre les images les unes à côté des autres... alors c'est bien de les dessiner dans une seule image qui facilitera l'alignement.