2011-08-09 18 views
5

क्या ग्राफविज़ इस तरह राज्य संक्रमण आरेख प्रस्तुत कर सकता है?क्या ग्राफविज़ इस तरह राज्य संक्रमण आरेख प्रस्तुत कर सकता है?

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

=== संपादित ===

(देखें: http://i.imgur.com/ElzSl.png) Marapet के कोड वास्तव में करीब आता है। मैं उसका जवाब स्वीकार कर रहा हूं।

+0

यह ऑटोटाटा आरेखों को चित्रित करने के लिए निश्चित रूप से एक लोकप्रिय उपकरण है, लेकिन यदि यह सटीक तस्वीर खींच सकता है, तो मुझे यकीन नहीं है। क्या आपने अब तक इसे आजमाया है? –

+0

यह एक ही तस्वीर प्राप्त करने के बारे में नहीं है, लेकिन एक ही आरेख प्रकार (जो संक्रमण शर्तों के लिए समर्थन के साथ है, एक ही लेआउट/उपस्थिति में प्रवेश क्रिया आदि)। मैंने अभी तक यह कोशिश नहीं की है, मैं सोच रहा था कि क्या किसी ने पहले ही यह पता लगाया है कि इस तरह के एसटीडी को कैसे प्रस्तुत किया जाए। – Erik

+0

हां, मैंने कई मौकों पर ऐसा किया है। यह बहुत आसान है। –

उत्तर

9

मैं संक्रमण की स्थिति के लिए नोड्स बनाएंगे:

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

उत्कृष्ट सुझाव, धन्यवाद! – Erik

+0

मुझे खुशी है कि यह मदद करता है! ... हो सकता है कि बोल्ड टेक्स्ट का उपयोग करने के लिए _Opened_ और _Closed_ नोड्स के लिए एचटीएमएल जैसे लेबल का उपयोग करें, साथ ही _transition condition_ nodes के लिए एक मोनोस्पेस फ़ॉन्ट का उपयोग करें। – marapet

2

मैं close_door के लिए एक नोड बनाने की बजाय तीर पर लेबल का प्रयोग करेंगे:

खोला -> बंद [लेबल = बंद दरवाजा];