मुझे एक अभ्यास दिया जाता है दुर्भाग्य से मैं खुद सफल नहीं हुआ।
आयतों का एक सेट और एक आयत । यदि प्लेन स्वीपिंग एल्गोरिथ्म का उपयोग यह निर्धारित करता है कि पूरी तरह से के सेट द्वारा कवर किया गया है ।
स्वीप लाइन एल्गोरिदम के सिद्धांत के बारे में अधिक जानकारी के लिए यहां देखें ।
हमें शुरू से करना चाहिए। प्रारंभ में हम स्वीप लाइन एल्गोरिथ्म को लाइन सेगमेंट चौराहों को खोजने के लिए एल्गोरिदम के रूप में जानते हैं जिसके लिए दो डेटा संरचनाओं की आवश्यकता होती है:
- ईवेंट पॉइंट्स का एक सेट (यह सेगमेंट और चौराहों के पॉइंट पॉइंट्स को स्टोर करता है)
- एक स्थिति (सेगमेंट के सेट के लिए गतिशील संरचना स्वीप लाइन इंटरसेप्टिंग)
सामान्य विचार: मान लें कि स्वीप लाइन एक ऊर्ध्वाधर रेखा है जो बाईं ओर से आयतों के सेट के पास पहुंचना शुरू कर देती है। आयतों के सभी निर्देशांक को क्रमबद्ध करें और उन्हें बढ़ते क्रम में में संग्रहीत करें - लेना चाहिए । पहले घटना बिंदु से शुरू करें, हर बिंदु के लिए आयतों के सेट को निर्धारित करें जो दिए गए निर्देशांक पर प्रतिच्छेद करते हैं, चौराहे के आयताकारों के निरंतर खंडों की पहचान करें और जांचें कि क्या वे पूरी तरह से वर्तमान समन्वय में कवर करते हैं। साथ एक द्विआधारी पेड़ के रूप में इसे लेने वाला है । यदि का कोई भी भाग खुला रहता है पूरी तरह से कवर नहीं है।
विवरण: खंड चौराहे एल्गोरिथ्म का विचार था कि केवल निकटवर्ती खंड प्रतिच्छेद। इस तथ्य के आधार पर हमने स्टेटस बनाया और इसे एल्गोरिथम में बनाए रखा। मैंने इस मामले में एक समान विचार खोजने की कोशिश की और अब तक कोई सफलता नहीं मिली है, केवल एक ही चीज मैं कह सकता हूं कि दो आयतें प्रतिच्छेद हैं यदि उनका संगत और निर्देशांक ओवरलैप है।
समस्या का निर्माण कैसे करने के लिए और बनाए रखने के है , और क्या इमारत की जटिलता और बनाए रखने के है। मुझे लगता है कि आर पेड़ इस मामले में बहुत उपयोगी हो सकते हैं, लेकिन जैसा कि मैंने पाया कि आर पेड़ों का उपयोग करके न्यूनतम बाउंडिंग आयत निर्धारित करना बहुत मुश्किल है।
क्या आपके पास इस समस्या को हल करने के बारे में कोई विचार है, और विशेष रूप से कैसे ?