2013-05-28 2 views
8

मैं एक पुस्तकालय की तलाश में हूं जिसमें नोड्स और किनारों की आपूर्ति की जा सकती है और जो अच्छी तरह से रखे गए सभी नोड्स की समन्वय सूची उत्पन्न करता है। हालांकि, कुछ के लिए निश्चित स्थिति की आपूर्ति करना संभव होना चाहिए, लेकिन सभी नोड्स जो लेआउट एल्गोरिदम का सम्मान करना चाहिए।वृद्धिशील ग्राफ के लिए नोड ग्राफ़ लेआउट लाइब्रेरी

मैंने अब तक ग्राफवीज़ (एफडीपी, नेटो) की कोशिश की है, जो कुछ नोड्स की स्थिति को रखने में सक्षम नहीं है और उनके चारों ओर लेआउट बनाया गया है।

लाइब्रेरी को अजगर के साथ उपयोग करने योग्य होना चाहिए, इसलिए यह पाइथन या सी/सी ++ होना चाहिए ताकि हम अपना बाध्यकारी लिख सकें।

निम्नलिखित चित्रों में बिल्कुल वही दिखाया गया है जो मैं ढूंढ रहा हूं (यह यूड्रा-प्रोजेक्ट है, जो लाइब्रेरी के रूप में मौजूद नहीं है)।

uDraw incremental layout

+1

क्या आपको इस समस्या का समाधान मिला? –

+0

मैं 3 डी स्पेस में आंशिक ग्राफ के समान कुछ पर काम कर रहा हूं, लेकिन यह मुश्किल है। आपको किसी भी तरह से बड़े नोड्स के सापेक्ष निर्देशांक स्टोर करना होगा, जब तक कि आप प्रत्येक अद्यतन द्वारा ग्राहकों को पूरा ग्राफ डेटा नहीं भेजना चाहते हैं। मेरे पास अभी तक कोई समाधान नहीं है। क्या आपको कुछ उपयोगी मिला? – inf3rno

उत्तर

1

आपको लगता है कि अगर आप के लिए उपयोगी है रिवर्स में graphvizमें ऐसा कर सकते हैं,। ऐसा करने के लिए, आप दाएं हाथ के ग्राफ को पहले प्लॉट करेंगे, और फिर बाएं हाथ के ग्राफ़ को नोड्स 15, 16 और 17 के साथ style=invis पर प्लॉट करें। यह आपको दिखाए गए जैसा ही लेआउट देगा।

पहली बार बाएं हाथ के ग्राफ की साजिश के साथ मुझे लगता है कि एक समस्या यह है कि सॉफ़्टवेयर (dot या कुछ और) प्राकृतिक रूप से नोड्स 15, 16 और 17 के बिना "अच्छा दिखने वाला" ग्राफ प्लॉट करने का प्रयास करेगा और वह हो सकता है नोड्स 15, 16 और 17 के लिए पर्याप्त जगह न छोड़ें ताकि उन्हें बाद में आवश्यकता हो। उदाहरण के लिए, यदि हमने नोड्स 11 और 12 के बीच नोड 12 ए डालने का प्रयास किया है, तो ऊपर दिखाए गए ग्राफ में उस नोड के लिए कमरा नहीं होगा। दूसरी तरफ, यदि नोड 12 ए शुरू में प्लॉट किया गया था लेकिन अदृश्य, तो सॉफ़्टवेयर इसके लिए जगह आवंटित करेगा, जहां इसे बाद में शामिल किया जा सकता है।

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