2011-04-12 25 views
6

मैं छेद के साथ एक 2 डी बहुभुज इनपुट प्रदान करने, है और मैं यह चित्र में सीधे कंकाल है, की तरह खोजने की जरूरत है:सीधे लाइब्रेरी बनाने के लिए जावा लाइब्रेरी?

http://www.cgal.org/Manual/3.2/doc_html/cgal_manual/Straight_skeleton_2/exterior_skeleton.png

हो सकता है कि इसके लिए एक अच्छा जावा पुस्तकालय है?

और यदि नहीं, तो क्या आप मुझे एल्गोरिदम के अच्छे स्पष्टीकरण के लिए इंगित कर सकते हैं, इसलिए मैं इसे स्वयं लागू कर सकता हूं? (मुझे Google पर अच्छे संसाधन नहीं मिला है)

उत्तर

4

मैंने इसे थोड़ी देर पहले लिखा था। यकीन नहीं है कि यह काफी मजबूत है। http://code.google.com/p/campskeleton/

यहाँ Webstart: http://dcs.gla.ac.uk/~tkelly/bits/wss/launch.jnlp

+0

अच्छा। लेकिन मैंने एक बग देखा - कभी-कभी ऐसा लगता है जैसे कंकाल एक सेगमेंट को याद करता है। – Rogach

+0

मैंने आपकी लाइब्रेरी के साथ खेला, और यह बहुत अच्छा है! अब मुझे केवल चेहरों से कंकाल लाइनों को निकालने का एक तरीका ढूंढना होगा। :) – Rogach

2

संपादित करें: आह। मुझे लगता है कि "Straight Skeleton" एक तकनीकी शब्द है। विकिपीडिया लेख कई एल्गोरिदम संदर्भित करता है। क्या आपने उन पर देखा है?


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

मुझे आपके द्वारा प्रदान किए गए उदाहरण से नियमों के एक सेट के साथ कठिन समय आ रहा है। बाहरी बहुभुज गैर-उत्तल हैं; इसलिए ऐसा प्रतीत नहीं होता है कि आप परिणाम का प्रतिनिधित्व करने के लिए एक उत्तल सेट खोजने की कोशिश कर रहे हैं (जो अपेक्षाकृत सामान्य कार्य है)।

यदि आप नीचे दिखाए गए ब्रेकडाउन का उपयोग कर सकते हैं, तो एल्गोरिदम बहुत सरल है। क्या आप स्पष्ट कर सकते हो?

Triangularized shape

2

आप JTS Topology Suite उपयोग करने में सक्षम हो सकता है। यह एक बहुत ही सक्षम पुस्तकालय है जिसे मैंने कई परियोजनाओं पर उपयोग किया है - कभी भी सीधे कंकाल के लिए नहीं, लेकिन यह संभव हो सकता है।

-1

मैं यू पूछ सकता हूँ सीधे कंकाल खोजने के लिए अपने उद्देश्य क्या है? क्या यह निजी या वाणिज्यिक है? मुझे यह जानने में दिलचस्पी होगी कि आप वास्तविक समय की समस्याओं को हल करने के लिए इसका उपयोग कैसे कर रहे हैं? मेरे पास जावा पुस्तकालय है जो ऐसा करता है। मेरा एल्गोरिदम यहां सूचीबद्ध है http://web.stcloudstate.edu/rsarnath/skeleton/definition.htm

+2

वाणिज्यिक। मेरे मामले में, मैं वास्तव में बहुभुज को "पतला" करने का एक तरीका खोज रहा था। सीधे कंकाल अच्छा लग रहा था, लेकिन बहुत धीमा - मुझे कमजोर मशीनों पर वास्तविक समय (<1 सेकंड) में जटिल बहुभुज (कई हजार अंकों से बना) के लिए "केंद्र रेखा" प्राप्त करने की आवश्यकता थी। तो अंत में, मैं बहुभुज के बाधित डेलयूने त्रिभुज बनाने और त्रिकोण केंद्रों को जोड़ने पर बस गया - यह मुझे "केंद्र रेखा" का बहुत अच्छा अनुमान लगा। – Rogach

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