53 lines
1.9 KiB
Text
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.
|