metautomata/exemple.mp
Yann Esposito (Yogsototh) 64378ee2b2 initial commit
2012-09-20 13:14:34 +02:00

53 lines
1.9 KiB
Text

% le input pour utiliser les macros
input pfa ;
% la défintion de chaque figure se fait entre
% beginfig(numéro de la figure) ;
% ...
% endfig;
beginfig(1) ;
% z est un nom de variable réservé pour être un tableau de coordonnées
% par exemple si on écrit z1=origin, alors on peut utiliser directement
% x1 et y1 qui valent tous les deux 0.
z1 = origin;
% hspace correspond à l'espace horizontal standart entre deux états.
% Comme dans l'exemple il y a du texte, on rajoute un peu plus
z2 = (hspace+2cm,0);
% si on veut dessiner un état non initial et non terminal
% on utilise
% drawState(texteEtat, position)
% pour un état terminal et pas initial
% drawFState(texteEtat, texteFinal, position)
% pour un état initial et pas terminal
% drawIState(texteEtat, texteInitial, position)
% pour un état initial et terminal
% drawIFState(texteEtat, texteInitial, texteTerminal, position)
% ici on trace un état initial et terminal qui s'appelle q_1 (écrit
% LaTeX celà signifie q avec 1 en indice bas)
% on écrit 1/2 pour la valeur d'initialisation
% on écrit \alpha pour la valeur terminale
drawIFState(btex $q_1$ etex,
btex $$ \frac{1}{2} $$ etex,
btex $ \alpha $ etex,
z1);
% presque pareil qu'avant seule les valeur changent
drawIFState(btex $q_2$ etex,
btex $$ \frac{1}{2} $$ etex,
btex $ \alpha^2 $ etex,
z2);
% On peut maintenant tracer des transitions avec
% drawArc(positionDépart, positionArrivé, angle de sortie, texte)
drawArc(z1,z1,0,btex $$\eqalign{& a,\alpha \cr & b,1-2\alpha } $$ etex) ;
drawArc(z2,z2,0,btex $$\eqalign{& a,\alpha^2 \cr & c,1-2\alpha^2} $$ etex) ;
% remarque si vous voulez donner l'angle de sortie pour qu'il n'y ait
% pas de courbre, il suffit d'écrire :
% angle(positionArrivée - positionDépart)
endfig ;
end.