2011-03-24 16 views
13

में किनारे की दिशा बदलना मैं डॉट में एक सुंदर सरल आरेख खींचने की कोशिश कर रहा हूं।डॉट

digraph untitled 
    { 
    rankdir = LR; 
    {rank=same; S; A} 
    B -> A; 
    B -> S; 
    A -> A; 
    S -> S; 
    A -> S ; 
    S -> A; 
    A -> T; 
    S -> T; 
} 

परिणाम मैं

enter image description here

है

मैं वास्तव में S -> S से बढ़त को बदलने के लिए है, लेकिन मैं भी वे ऐसा पाश तीर के उन्मुखीकरण को बदलने के लिए बाएं से दाएं चाहते हैं ।

उत्तर

35

किसी भी तीर के उन्मुखीकरण को बदलने के लिए, तो आप बस dir=back उपयोग कर सकते हैं:

S -> S [dir=back]; 

लेकिन आपके मामले में यह आवश्यक हो प्रतीत नहीं होता है ... (देखें नीचे)

वजह से

बढ़त S -> S और A -> S और S -> A किनारों के बीच ओवरलैप, मैं एक तीर के साथ एस और ए के बीच केवल एक किनारे का उपयोग करने का सुझाव देते हैं पर दोनों समाप्त होता है:

digraph g { 
    rankdir = LR; 
    {rank=same; S; A} 
    B -> A -> T; 
    B -> S -> T; 
    A -> A; 
    S -> S; 
    A -> S[dir=both]; 
} 

graphviz output

0

मुझे नहीं पता कि तीर लूप को बाएं से दाएं बनाना संभव है या नहीं। आप जैसे

S->S[dir=both]; 

इसके अलावा dir विकल्प के उपयोग के द्वारा तीर पर नियंत्रण की डिग्री व्यायाम कर सकते हैं आप एस के एस से लिंक की लंबाई को बदलने आप दिशा-निर्देशों को नियंत्रित कर सकते द्वारा लेआउट प्रभावित कर सकते हैं के (गैर आत्म निर्देशात्मक) आदेश नोड्स पीछे से तीर सूचीबद्ध हैं जैसे:

S->T; 
becomes 
T->S; 

मैं ने पाया है कि यह लगभग हमेशा बेहतर चित्र पैदा करता है, कम यह विवश है। मैं रैंक = एक ही कमांड को हटाने के साथ प्रयोग करने का सुझाव दूंगा।

संबंधित मुद्दे