में फोर्स-निर्देशित लेआउट कार्यान्वयन क्या आप GUIs के लिए उपयोग किए गए C++ में force-directed layout के ओपन सोर्स कार्यान्वयन से अवगत हैं? अधिमानतः बीएसडी/एमआईटी/अपाचे या अन्य (गैर-जीपीएल) लाइसेंस।सी ++
सी ++
उत्तर
उत्कृष्ट Boost.Graph library एल्गोरिदम की विस्तृत श्रृंखला प्रदान करता है, जिनमें से कुछ लेआउट एल्गोरिदम हैं। मैं या तो Kamada-Kawai spring layout या Fruchterman-Reingold force-directed layout का उपयोग करने की सलाह दूंगा।
Boost licence बहुत अनुमोदित है इसलिए इसके बारे में चिंता न करें।
पहला Google परिणाम VTK है। दूसरा मुझे vtkGraphLayoutView पर ले जाता है।
अवलोकन
https://www.kitware.com/InfovisWiki/index.php/Main_Page
कुछ स्थापना चरणों यदि आप इस आवेदन चाहते हैं, की जानकारी के सभी कि विकि पर है। यह वीटीके पर बनाया गया एक एप्लीकेशन है। विशिष्ट फ़ंक्शन ओवरव्यू में 2 आयामों में जानकारी के ग्राफ (आवश्यक रूप से ज्यामितीय नहीं) का प्रतिनिधित्व करने की क्षमता है।
जैसा कि स्पष्ट रूप से इंगित किया गया है, वीटीके के पास एक बल निर्देशित ग्राफ लेआउट है। ओवरव्यू जैसे कुछ का उपयोग करने का लाभ यह है कि आप आसानी से ओवरव्यू के लिए कस्टम प्लग-इन कर सकते हैं, जिसे आप अपना डेटा पढ़ सकते हैं और बल निर्देशित लेआउट रणनीति का उपयोग करके इसे प्रदर्शित कर सकते हैं।
यदि आप ओवरव्यू पर निर्भर नहीं होना चाहते हैं तो अपने प्लग-इन कोड को निकालना बहुत आसान है और केवल ओवरव्यू संदर्भित करना है क्योंकि सभी प्रतिपादन आपके प्लग-इन के बाहर संभाला जाता है।
क्या आपने neatographviz से देखा है। यह guide लाइब्रेरी के रूप में ग्राफविज़ के उपयोग के लिए भी विस्तार से चला जाता है। guide में fdp लेआउट एल्गोरिदम का उपयोग करना शामिल है, जो वास्तव में आप चाहते हैं कि वास्तव में प्रतीत होता है। सभी ग्राफविज़ Common Public License के अंतर्गत आता है।
यह डाउनवॉटेड क्यों है? यह ओपन सोर्स, मुफ़्त है और बीएसडी लाइसेंस है। – dirkgently
+1 क्योंकि अज्ञात वोट वोट मुझे दुखी करते हैं। –
वीटीके का उपयोग करने के बाद, मुझे लगता है कि यह आपकी समस्या का वास्तव में अच्छा समाधान है। इसके अलावा यह पूरी तरह से पार मंच लिनक्स/मैक/विंडोज है। और यदि आपको कभी आवश्यकता हो तो पाइथन/जावा और टीसीएल/टीके के लिए यह बाध्यकारी है। –