affichage de la valeur d'un booléen

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 !
zariski
Messages : 141
Enregistré le : dim. 30 sept. 2012, 18:50

affichage de la valeur d'un booléen

Message non lu par zariski » mer. 14 nov. 2012, 16:18

Hello everybody !

Est-il possible d'afficher (à l'aide de label par exemple) la valeur d'un booléen lors d'un test ?

par exemple, je teste quelques fonctions sur les path et notamment ce petit fichier :

Figure asymptote 368b125b470a748430b9fe4e405bf8df
*** Pour masquer/découvrir le code Asymptote qui a permis de créer la figure, il faut cliquer dessus. ;-) ***

CODE ASYMPTOTE de la figure ci-dessus : Tout sélectionner
  1. unitsize(1cm);
  2.  
  3. path p=(0,0)--(1,2)--(2,2)--(3,1)--(2,0)--(2,-1)--(1,-1)--cycle;
  4.  
  5. int n=length(p);
  6. int s=size(p);
  7. bool c=cyclic(p);
  8.  
  9. draw(p);
  10.  
  11. label(string(n),(1,1));
  12. label(string(s),(2,1),E);
  13. //label(c,(1,1),S); // qui ne marche pas bien sûr
  14.  
  15. shipout(bbox(5mm));
Windows 11- Ubuntu 20.10 - WinEdit - TexStudio - TeXMaker - TeXLive2022

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

Re: affichage de la valeur d'un booléen

Message non lu par GM » mer. 14 nov. 2012, 16:31

Bonjour,

write... pour un affichage dans la console... car je doute d'un intérêt sur l'image.

Code : Tout sélectionner

write(c);

Sinon... un test "If... then ... else ... " en version abrégée :

Code : Tout sélectionner

label((c)?"true":"false",(1,1),S);
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 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 : Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur : Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !

zariski
Messages : 141
Enregistré le : dim. 30 sept. 2012, 18:50

Re: affichage de la valeur d'un booléen

Message non lu par zariski » mer. 14 nov. 2012, 16:36

Bingo pile poil ce que je voulais, je voyais bien un truc du style "test" mais la façon d'y arriver .....
En console, j'avais testé mais aucun intérêt.

MERCI.

"un jour je l'aurai ! ;) "
Windows 11- Ubuntu 20.10 - WinEdit - TexStudio - TeXMaker - TeXLive2022

zariski
Messages : 141
Enregistré le : dim. 30 sept. 2012, 18:50

Re: affichage de la valeur d'un booléen

Message non lu par zariski » mer. 14 nov. 2012, 17:34

Une question plus pointue.

Comment fait-on pour afficher la valeur d'un type quelconque ?
affichage de la valeur d'un entier --> fait
affichage de la valeur d'un bool --> fait
affichage des coordonnées d'un point --> ?
affichage de la valeur d'un real --> ?
etc...
Windows 11- Ubuntu 20.10 - WinEdit - TexStudio - TeXMaker - TeXLive2022

zariski
Messages : 141
Enregistré le : dim. 30 sept. 2012, 18:50

Re: affichage de la valeur d'un booléen

Message non lu par zariski » mer. 14 nov. 2012, 22:51

En fait c'est : format("x_{I}=%.2f",I.x) que je ne comprends pas !

Je me suis bricolé ce truc mais je préfèrerais avoir un affichage du style : (1,33 ; 2,33) sur ma figure.

Figure asymptote 1cd1468ecf48fe75b398a29fa43adcac
*** Pour masquer/découvrir le code Asymptote qui a permis de créer la figure, il faut cliquer dessus. ;-) ***

CODE ASYMPTOTE de la figure ci-dessus : Tout sélectionner
  1. import graph;
  2. unitsize(1cm);
  3.  
  4. xaxis("$x$",Ticks(scale(0.7)*Label(),NoZero),Arrow(2mm));
  5. yaxis("$y$",Ticks(scale(0.7)*Label(),NoZero),Arrow(2mm));
  6.  
  7. real f(real x){return x+1;}
  8. real g(real x){return -0.5*x+3;}
  9.  
  10. path p1=graph(f,-3,3,300);
  11. path p2=graph(g,-3,3,300);
  12. pair I=intersectionpoint(p1,p2);
  13.  
  14. draw(p1,red);
  15. draw(p2,blue);
  16. dot(I);
  17.  
  18. draw(Label(format("$x_{I}=%.2f$",I.x)),I,NE);
  19.  
  20. draw(Label(format("$y_{I}=%.2f$",I.y)),I,SE);
Windows 11- Ubuntu 20.10 - WinEdit - TexStudio - TeXMaker - TeXLive2022

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

Re: affichage de la valeur d'un booléen

Message non lu par GM » mer. 14 nov. 2012, 23:29

L'extension geometry de Philippe permet de telles choses :

http://www.marris.org/asymptote/Changement_Repere/index.html#fig_aa03_030308_deux_reperes

Figure asymptote 8ee4396edc554d777b9b92cd2d286817
*** Pour masquer/découvrir le code Asymptote qui a permis de créer la figure, il faut cliquer dessus. ;-) ***

CODE ASYMPTOTE de la figure ci-dessus : Tout sélectionner
  1. import geometry;
  2. size(7cm,0);
  3. // On définit un stylo,
  4. pen p=.8bp+blue;
  5. // ... un second repère
  6. coordsys R=cartesiansystem((1,2),i=(1,0),j=(-1,1));
  7. // On affiche les deux repères.
  8. show(currentcoordsys);
  9. show(Label("$O'$",p),
  10. Label("$\vec{u}$",p), Label("$\vec{v}$",p),
  11. R, ipen=p);
  12. // Point A(2,1) dans le repère par défaut, en rouge
  13. pair A=(2,1);
  14. dot("", A, SW, red);
  15. // et B le couple de coordonnées de A dans le repère R
  16. point B=point(R, A/R);
  17. dot("", B, NE, p);


avec des facilités pour tracer des droites données par équation réduite ou cartésienne :

Figure asymptote d35ceaa0b0e9179796e830ca1e43b48d
*** Pour masquer/découvrir le code Asymptote qui a permis de créer la figure, il faut cliquer dessus. ;-) ***

CODE ASYMPTOTE de la figure ci-dessus : Tout sélectionner
  1.  
  2.  
  3. import geometry;
  4. size(7cm,0);
  5.  
  6. // Affichage du repère courant
  7. show(currentcoordsys);
  8. // Tracé de la droite d'équation x + 2y - 3 = 0
  9. line d1=line(1,3,-3);
  10. draw(d1,blue);
  11. // Tracé de la droite d'équation y = 2x - 3
  12. line d2=line(2,-3);
  13. draw(d2,.8green);
  14. // Point d'intersection des deux droites
  15. dot("I",intersectionpoint(d1,d2),N,.7red);
  16.  
  17. draw(box((-2,-2),(5,4)),invisible);


Mais si tu préfères que j'adapte ton exemple... il s'agira de concaténer des chaines ; on peut faire des choses comme cela :

Code : Tout sélectionner

"........"+string(....)+format(.........)+format(.........)+.....
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 24/02/21) :
PC n°1 :Windows 10 - Asymptote(2.82)+MikTeX2.9 - Editeurs : Notepad++, TeXworks, Visual Studio Code.
PC n°2 : Ubuntu 20.04LTS - Asymptote(2.67-?? git) + TexLive2020
Mon serveur : Debian Stretch- Asymptote(2.68-16 git) + TexLive2018
Merci de préciser la votre !

zariski
Messages : 141
Enregistré le : dim. 30 sept. 2012, 18:50

Re: affichage de la valeur d'un booléen

Message non lu par zariski » jeu. 15 nov. 2012, 07:51

merveilleux, c'est ce que j'attendais, pourtant c'est pas faute de visiter un tas de site ...
Merci, à plus pour d'autres aventures qui ne sauraient tarder ! :D
Windows 11- Ubuntu 20.10 - WinEdit - TexStudio - TeXMaker - TeXLive2022

Répondre