2010-08-11 15 views
55

यहाँ मेरी डॉट ग्राफ का एक बहुत ही सरल उदाहरण है:डॉट ग्राफ भाषा - बिडरेक्शनल किनारों को कैसे बनाना है?

strict digraph graphName { 
A->B 
B->A 
} 

यह बनाता है alt text http://grab.by/grabs/a7a5a41268955d2a62b6aa2b8b131e03.png

इसके बजाय मैं एक एकल बढ़त ए और बी के बीच लेकिन डबल तीर सिर के साथ दिखाया गया है चाहता हूँ। मुझे पता है कि एक वैश्विक विकल्प के रूप में डबल तीर प्राप्त करने के लिए:

strict digraph graphName { 
    edge [dir="both"] 
A->B 
B->A 
} 

लेकिन वह बहुत बदसूरत लग रहा है, और न मेरी किनारों के सभी दोहरी अध्यक्षता में किया जाना चाहिए।

alt text http://grab.by/grabs/c370bc807079b0e6c0e5f63d5624b211.png

अगर मैं ग्राफ के अधिक संसाधन करते हैं और डबल संदर्भ अपने आप का पता लगाने और एक भी बढ़त के साथ दो किनारों की जगह है, यह ठीक लग रहा है। लेकिन मैं नहीं बल्कि इस अतिरिक्त कदम

strict digraph graphName { 
A->B [dir="both"] 
} 

alt text http://grab.by/grabs/424d58700292a274eea833ff8956c696.png

किसी भी बेहतर समाधान करने की जरूरत नहीं हैं?

उत्तर

47

कैसे 'ध्यान = सच' ?:

strict digraph graphName { 
concentrate=true 
A->B 
B->A 
} 

with concentrate=true http://i38.tinypic.com/290ugk6.png

documentation से के बारे में:

अगर सही है तो किनारे संकेंद्रक का उपयोग करें। यह multiedges को एक किनारे में विलीन करता है और आंशिक रूप से समांतर किनारों को उनके पथों का हिस्सा साझा करता है। उत्तरार्द्ध सुविधा अभी तक डॉट के बाहर उपलब्ध नहीं है।

+5

यह काम नहीं करता जब किनारे एक लेबल होना चाहिए .. मेरे लिए एक लेबल के साथ –

+0

काम करता है, और मैं एक पुराना संस्करण चला रहा हूँ। –

+1

यह dot2.38 – Pacerier

53

तुम बस का उपयोग करना चाहिए:

A -> बी [dir = "दोनों"]

+4

इससे मुझे कुछ अनावश्यक रेखाएं बचाईं, और मैं इसका उपयोग कर रहा हूं साथ ही शीर्ष उत्तर जहां उचित हो। –

+1

यह स्वीकार्य उत्तर होना चाहिए। –

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