Nom de fichier et fonction void()

Pour toute demande d'aide sur des exemples non finalisés, c'est ici.
Les exemples aboutis et intéressants seront ajoutés aux sous-forums qui suivent.

Règles du forum
Pour toute demande d'aide pour la conception (ou la confirmation d'un code) d'une figure Asymptote, c'est ici.

J'invite ceux qui ont régulièrement des questions à poser à aller dans leur panneau de l'utilisateur pour indiquer dans la signature de leurs messages :

  1. Nom du système d'exploitation (W7 ou Ubuntu 12.04 ou ...)
  2. Version d'Asymptote et éditeur utilisé pour les figures Asymptote
  3. Distribution LaTeX et éditeur utilisé pour les tex.


On va gagner du temps dans les réponses !
Avatar du membre
GM
Administrateur du site
Administrateur du site
Messages : 1428
Enregistré le : dim. 7 mars 2010, 14:50

Re: Nom de fichier et fonction void()

Message non lu par GM » sam. 16 févr. 2013, 23:20

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();
}
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 31/03/19) :
PC n°1 :Windows 10 - Asymptote(2.59)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
Mes autres PC : Ubuntu 18.04LTS - Asymptote(2.52-?? git) + TexLive2018
Mon serveur : Debian Jessie - Asymptote(2.52-1 git) + TexLive2018
Merci de préciser la votre !

Fabrice
Messages : 118
Enregistré le : sam. 13 mars 2010, 11:41

Re: Nom de fichier et fonction void()

Message non lu par Fabrice » sam. 16 févr. 2013, 23:50

Re,
J'avais oublié la routine erase() :?
Merci.
Debian Strech + Asymptote 2.42-12 + Emacs24 + TeXLive 2017

Avatar du membre
GM
Administrateur du site
Administrateur du site
Messages : 1428
Enregistré le : dim. 7 mars 2010, 14:50

Re: Nom de fichier et fonction void()

Message non lu par GM » dim. 17 févr. 2013, 09:55

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.
Index des fonctions - Exemple de lien donnant le résultat d'une recherche sur les mots 'arc' et 'triple' : http://asy.marris.fr/indexasy/?filtre=arc triple
Mes configurations (le 31/03/19) :
PC n°1 :Windows 10 - Asymptote(2.59)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
Mes autres PC : Ubuntu 18.04LTS - Asymptote(2.52-?? git) + TexLive2018
Mon serveur : Debian Jessie - Asymptote(2.52-1 git) + TexLive2018
Merci de préciser la votre !

Répondre