J'essaie de reproduire un dessin du bouquin. Je me suis inspiré de ce post
*** 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
- size(10cm);
- transform t=scale(0.75);
- object objet_1=draw(t*"d\'epart",ellipse,(0,0),xmargin=.1cm,filltype=FillDraw(blue,black));
- object objet_2=draw(t*"D",ellipse,(3,0),xmargin=.1cm,filltype=FillDraw(blue,black));
- object objet_3=draw(t*"DE",ellipse,(5,0),xmargin=.1cm,filltype=FillDraw(blue,black));
- object objet_4=draw(t*"DEU",ellipse,(7,0),xmargin=.1cm,filltype=FillDraw(blue,black));
- object objet_5=draw(t*"DEUX",ellipse,(9,0),xmargin=.1cm,filltype=FillDraw(blue,black));
- add(new void(picture pic, transform t) {
- //Fleches directes
- draw(pic,point(objet_1,E,t){N+2*E}..{S+2*E}point(objet_2,W,t),MidArrow);
- draw(pic,point(objet_2,W,t){S+2*W}..{N+2*W}point(objet_1,E,t),MidArrow);
- draw(pic,point(objet_2,E,t){N+E}..{S+E}point(objet_3,W,t),MidArrow);
- draw(pic,point(objet_3,W,t){S+W}..{N+W}point(objet_2,E,t),MidArrow);
- draw(pic,point(objet_3,E,t){E}..{E}point(objet_4,W,t),MidArrow);
- draw(pic,point(objet_4,E,t){E}..{E}point(objet_5,W,t),MidArrow);
- draw(pic,point(objet_3,S,t){S+W}..{N+W}point(objet_1,SE,t),MidArrow);
- draw(pic,point(objet_4,S,t){S+W}..{N+W}point(objet_1,SW,t),MidArrow);
- draw(pic,point(objet_4,N,t){N+W}..{S+W}point(objet_2,NE,t),MidArrow);
- // Boucles
- draw(pic,point(objet_1,NE,t){NE}..{SW}point(objet_1,NW,t),MidArrow);
- draw(pic,point(objet_2,NE,t){NE}..{SW}point(objet_2,NW,t),MidArrow);
- });
C'est pas si mal mais j'ai malgré tout des questions :
1) Le seul gros problème est les boucles ... Comment faire ?
2) Y'a-t-il un moyen d'étiqueter directement les arêtes de l'automate ?
3) Les arêtes sont-elles nécessairement lisses (pas d'angle) ?
4) N'y a-t-il pas intérêt à ulisiser l'extension flowchart ?
Merci
Bruno