2010-11-23 17 views
10

मेरे पास 2 डी बंद वेक्टर पथ हैं, SVG paths-like syntax में निर्दिष्ट - यानी इन पथों में सीधी रेखाएं और विभिन्न बेजियर वक्र शामिल हैं। वहाँ एक छोटा सा, अच्छा & असतत पुस्तकालय ऐसा कुछ है (अधिमानतः सी, जावा या रूबी में है, लेकिन अगर इस पुस्तकालय स्वच्छ और उपयोग में आसान है किसी भी भाषा करेंगे) इस तरह संघ, चौराहे और इन रास्तों के साथ घटाव बूलियन संचालन करने की अनुमति देता ?एसवीजी/वेक्टर ग्राफिकल ऑब्जेक्ट्स बूलियन ऑपरेशंस (यूनियन, चौराहे, घटाव)

मैं अब तक क्या पाया है शामिल हैं:

  • विशाल और pricey वाणिज्यिक वेक्टर ग्राफिक (जैसे Autodesk AutoCAD या Adobe Illustrator के रूप में) उत्पादों है कि बूलियन 2 डी करने के लिए एपीआई के कुछ प्रकार का उपयोग कर कहा जा सकता है या पटकथा पथ संचालन - जो मेरे उद्देश्यों के लिए स्पष्ट रूप से एक ओवरकिल है।
  • इंकस्केप जो प्रलेखन, बाइंडिंग का अभाव है, कुछ संकलन मुद्दे हैं, इंकस्केप खुद के अलावा कोई परियोजनाओं में इस्तेमाल किया जा रहा है और काफी जटिल लग रहा है lib2geom पुस्तकालय घर में विकसित किया है।
  • CGAL एक विशाल और सुंदर जटिल कम्प्यूटेशनल ज्यामिति लाइब्रेरी है, जो सुंदर अजीब ऑब्जेक्ट स्पेस में काम करता है (यानी आपके पास टेम्पलेट्स का पागल मिश्रण है, इन टेम्पलेटेड डेटा स्ट्रक्चर आदि पर परिचालन करने के लिए अनिवार्य शैली कार्य), और ' प्रतीत होता है कि सी ++ के बगल में अन्य भाषाओं में सिन बाइंडिंग नहीं है। सीजीएएल को पाइथन बाइंडिंग छोड़ दी जाती है और मेरे लिए बहुत अनुकूल नहीं लगती है। जब मैं एसवीजी की तरह बेज़ियर घटता के साथ सौदा करने की आवश्यकता है
  • JTS, केवल सीधे लाइनों के साथ जीआईएस केंद्रित और सौदों हो रहा है।

तो, सवाल यह है कि, किसी भी अन्य छोटे, अच्छा & आसान पुस्तकालयों एसवीजी की तरह पथ पर बूलियन संचालन से निपटने के लिए चारों ओर चल देखते हैं क्या है?

+0

आप कुछ ज्यामितीय डेटा संरचना बाहर के लिए या परिणामों की सिर्फ एक दृश्य प्रतिनिधित्व के लिए देख रहे हैं? –

+0

मैं तलाश कर रहा हूँ: 1) डेटा संरचना, 2) बहुभुज और घटता के साथ बूलियन आपरेशन; मुझे दृश्यता पुस्तकालयों की आवश्यकता नहीं है, यानी काहिरा या कुछ इसी तरह की है। – GreyCat

उत्तर

5

शायद मैं कुछ याद कर रहा हूँ, लेकिन java.awt.geom पैकेज सूट अपनी आवश्यकताओं की कक्षाओं में नहीं है? वे द्वि-आयामी आकार से निपटते हैं; विशेष रूप से बूलियन संचालन के साथ Area वर्ग सौदों:

एक Area वस्तु भंडार और 2-आयामी अंतरिक्ष के एक संलग्न क्षेत्र के एक संकल्प-स्वतंत्र वर्णन manipulates। Area ऑब्जेक्ट्स को बदल दिया जा सकता है और अन्य Area ऑब्जेक्ट्स के साथ संयुक्त होने पर विभिन्न रचनात्मक क्षेत्र ज्यामिति (सीएजी) संचालन कर सकता है। सीएजी संचालन में क्षेत्र के अतिरिक्त, घटाव, चौराहे, और विशेष या शामिल हैं।

+0

धन्यवाद! यही कारण है कि लगभग ठीक है कि मैं क्या पहली नज़र पर जरूरत होने लगता है - यह अजीब बात है मैं इसे कैसे अनदेखी की। – GreyCat

+0

ग्राफिक ऑब्जेक्ट्स (100 सर्किलों का संघ, उनमें से कुछ ओवरलैपिंग, उदाहरण के लिए कुछ पृथक) बनाने के लिए इस लाइब्रेरी का उपयोग करना संभव है, और फिर svg या pdf पर निर्यात करें? यदि हां, तो क्या आप कुछ निर्देश दे सकते हैं? धन्यवाद! – qed

+0

@qed, 'java.awt.geom' पैकेज विशेष रूप से 2 डी आकारों से संबंधित है। एसवीजी या पीडीएफ में निर्यात करने के लिए क्रमशः बैटिक और आईटेक्स्ट जैसे अतिरिक्त पुस्तकालयों की आवश्यकता होती है। जहां तक ​​मुझे पता है, दोनों पुस्तकालयों में कुछ प्रकार के 'ग्राफिक्स 2 डी' कार्यान्वयन हैं जिन्हें आप आकर्षित कर सकते हैं। – lhballoti

2

आप JavaScript Clipper, Angus Johnson's Clipper के एक बंदरगाह (डेल्फी में लिखा है, सी ++, C# और पायथन), बारी में Bala R. Vatti's clipping algorithm पर आधारित है जो कर सकते हैं। यह स्वयं-अंतरण वाले सभी बहुभुज मामलों को संभालने में सक्षम है।

ध्यान रखें कि lib केवल बहुभुज लेता है ताकि any curves need to be polygonized पहले

+1

सुझाव के लिए धन्यवाद! – GreyCat

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