Page 1 sur 1

affichage de la valeur d'un booléen

Posté : mer. 14 nov. 2012, 16:18
par zariski
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));

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

Posté : mer. 14 nov. 2012, 16:31
par GM
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);

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

Posté : mer. 14 nov. 2012, 16:36
par zariski
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 ! ;) "

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

Posté : mer. 14 nov. 2012, 17:34
par zariski
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...

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

Posté : mer. 14 nov. 2012, 22:51
par zariski
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);

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

Posté : mer. 14 nov. 2012, 23:29
par GM
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(.........)+.....

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

Posté : jeu. 15 nov. 2012, 07:51
par zariski
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