2011-08-09 10 views
5

Czy Graphviz może renderować diagramy stanu dokładnie tak?Czy Graphviz może renderować diagramy State Transition w ten sposób?

http://upload.wikimedia.org/wikipedia/commons/c/cf/Finite_state_machine_example_with_comments.svg

=== Edit ===

kod Marapet przychodzi bardzo blisko (patrz: http://i.imgur.com/ElzSl.png). Akceptuję jego odpowiedź.

+0

Z pewnością jest popularnym narzędziem do rysowania diagramów automatów, ale jeśli nie jest w stanie narysować dokładnego obrazu, nie jestem pewien. Czy próbowałeś już tego? –

+0

Nie chodzi o uzyskanie tego samego obrazu, ale o ten sam typ diagramu (to z obsługą warunków przejścia, akcji wejścia itp. W podobnym układzie/wyglądzie). Nie próbowałem jeszcze, zastanawiałem się, czy ktoś już zorientował się, jak renderować choroby podobne do tego. – Erik

+0

Tak, zrobiłem to przy kilku okazjach. To całkiem proste. –

Odpowiedz

9

by utworzyć węzłów dla warunków przejściowych :

digraph g{ 
    Opened[label="1\nOpened\nE: open door"]; 
    Closed[label="2\nClosed\nE: closed door"]; 
    node[shape=plaintext]; 

    Opened -> close_door[arrowhead=none]; 
    close_door -> Closed; 
    Opened -> open_door[dir=back]; 
    open_door -> Closed[arrowhead=none]; 
} 
+0

Doskonała sugestia, dzięki! – Erik

+0

Cieszę się, że pomaga! ... może również używać etykiety podobnej do html dla węzłów _Opened_ i _Closed_, aby używać pogrubionego tekstu, a także używać czcionki o stałej szerokości dla warunków _transition condition_. – marapet

2

ja stosowania preparatu strzałkę zamiast tworzenia węzeł close_door:

otwarty -> Zamknięte [etykieta = Zamknij drzwi];

Powiązane problemy