2008-08-14 7 views
15

के लिए ड्राइंग लाइब्रेरी रूबी का उपयोग कर एक भाषा के लिए फ्लोचार्ट जनरेटर को कोड करने का प्रयास कर रहा हूं।रूबी

मैं जानना चाहता था कि क्या कोई पुस्तकालय था जिसका उपयोग मैं विभिन्न फ्लोचार्ट तत्वों के लिए विभिन्न आकार खींचने और उन आकारों को टेक्स्ट लिखने के लिए कर सकता था।

मैं वास्तव में मूल आकार ड्राइंग के लिए कोड लिखना पसंद नहीं करता, अगर मैं इसकी मदद कर सकता हूं।

क्या कोई मुझे उस पुस्तकालय का उपयोग करने के उदाहरणों के साथ कुछ संदर्भ दस्तावेज में इंगित कर सकता है?

+0

मेरे पास एक ही सवाल था, मुझे पता है कि आईडी के लिए कुछ भी तुलनीय है। .NET – Zasz

उत्तर

2

की तर्ज सरल जवाब है कि (लेखन के समय) आप लगभग निश्चित रूप से मौजूद नहीं था चाहते हैं क्या है के साथ है। माफ़ कीजिये!

यदि आप विंडोज-आधारित हैं तो मैं .NET स्पेस में एक उत्पाद की तलाश करूंगा, जहां मुझे उम्मीद है कि आपको कुछ मिल जाएगा। आपको शायद असली पैसे का भुगतान करना होगा। मुझे लगता है, अगर आप बहादुर हैं, तो आप IronRuby का उपयोग करके उससे बात कर सकते हैं।

गैर-एमएस पर्यावरण से मैं जावा-आधारित समाधान की उम्मीद कर रहा हूं। जैसा कि पहले से ही बताया गया है, वेब दुनिया के भीतर, आप कुछ जावास्क्रिप्ट-आधारित, या शायद अधिक संभावना है, फ्लैश (या शायद सिल्वरलाइट?) दुनिया से कुछ।

दरअसल, यदि आप रूबी में रहना चाहते हैं और कुछ जोखिमों को ध्यान में रखते हैं, तो सिल्वरलाइट जाने का एक तरीका हो सकता है - मानते हैं कि डीएलआर सामान वास्तव में काम करता है (यहां कोई अनुभव नहीं है)। रूबी - जितना मैं इसे प्यार करता हूं - इसके आसपास शायद सबसे परिपक्व जीयूआई संरचना है।

अद्यतन: यह लिखने के बाद (5 साल पहले) स्थिति में सुधार हुआ है - थोड़ा। हालांकि मुझे अभी भी किसी भी विशिष्ट रूबी ग्राफ-ड्राइंग पुस्तकालयों के बारे में पता नहीं है, Graphvizhere (Github) या gem install ruby-graphviz के लिए बेहतर समर्थन है। मैंने पाया है कि सरल ग्राफ के लिए, सीधे रूबी से लिपि लिखना संभव है।

+2

में नामांकन स्थान रगड़ने के लिए कुछ पुस्तकालय मौजूद हैं। हालांकि आपको केवल बुनियादी तत्वों के साथ काम करना होगा। जैसा कि नाथन ने बताया, वहां https://rubygems.org/gems/rmagick है, लेकिन https://rubygems.org/gems/cairo भी है। यहां एक सरल ट्यूटोरियल है http://www.hokstad.com/simple-drawing-in-ruby-with-cairo.html। और यहां एक और है जो जीटीके http://zetcode.com/tutorials/rubygtktutorial/cairo/ का उपयोग करता है। मुझे यह मानना ​​होगा कि यह सबसे अच्छा एपीआई नहीं है, लेकिन यह एक शुरुआत है। – Gaston

+4

"मुझे रूबी के साथ कुछ चाहिए", "कोशिश करें .NET", डब्ल्यूटीएफ। – Dorian

+0

@ गैस्टन बहुत बुरा है कि आपने इसका जवाब नहीं दिया है। – Blogueira

3

ऐसा लगता है कि आप मुख्य रूप से जो भी उपयोगकर्ता एजेंट के लिए निर्माण कर रहे हैं उसकी क्षमताओं से सीमित होने जा रहे हैं; यदि यह एक वेब प्रोजेक्ट है, तो ड्राइंग क्षमताओं ब्राउज़र पर निर्भर होने जा रहे हैं। चूंकि रूबी सर्वर-साइड चला रहा है, इसलिए आपको कम से कम कुछ जावास्क्रिप्ट को ड्रैगिंग/ज़ूमिंग आदि की अनुमति देने की आवश्यकता होगी। वेक्टर ड्राइंग के लिए जावास्क्रिप्ट का उपयोग करने के कई उदाहरण हैं (केवल Google "जावास्क्रिप्ट ग्राफिक्स लाइब्रेरी"), लेकिन सभी को कोडिंग की आवश्यकता है, और मैंने इस पुस्तकालय को नहीं देखा है जो इस सुंदरता को सारणीबद्ध करता है।

ImageMagick में रूबी बाध्यकारी नामक रूबी (जिसे कभी-कभी अन्य नामों द्वारा जाना जाता है, भंडार के आधार पर) होता है। (Link) मैंने इसे स्वयं नहीं उपयोग किया है, लेकिन मुझे विश्वास है कि यह वही करेगा जो आप खोज रहे हैं। आप कुछ कोडिंग करने की आवश्यकता होगी, लेकिन यह

draw.rectangle(x1, y1, x2, y2) 
draw.polygon(x1, y1,...,xN, yN) 
0

मुझे पूरी तरह से यकीन है, लेकिन रूबी के लिए कैरो बाइंडिंग देखें। पाठ के लिए पेंगो। मैं वर्तमान में जांच कर रहा हूं और इस पृष्ठ पर आया हूं।

17

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

graph { 
    A -- B -- C; 
    B -- D; 
    C -- D [constraint=false]; 
} 

renders के रूप में
undirected

digraph { 
    A [label="start"]; 
    B [label="eat"]; 
    C [label="drink"]; 
    D [label="be merry"]; 

    A -> B -> C; 
    C -> D [constraint=false]; 
    B -> D [ arrowhead=none, arrowtail=normal]; // reverse this edge 
} 

renders के रूप में
directed

आप नोड आकार को नियंत्रित करने और Graphviz में भी बहुत कुछ कर सकते हैं।