2009-09-10 12 views
6

की मंडलियों के साथ एक मनमाना क्षेत्र को कवर करना एक एल्गोरिदम कैसे काम करता है जो समान त्रिज्या के चक्रों के साथ एक मनमाना क्षेत्र को कवर करता है?बराबर त्रिज्या

सर्कल का त्रिज्या और क्षेत्र के आकार और आकार को मनमाने ढंग से दिया जाता है। क्षेत्र को यथासंभव कम से कम हलकों के साथ कवर किया जाना चाहिए। मंडल ओवरलैप हो सकता है।

क्या कोई एल्गोरिदम है जो इसे संभालेगा?

+1

मंडल tesellate नहीं है, तो आप इसे बिना ओवरलैप के पूरी तरह से नहीं कर सकते हैं। क्या आप अपनी समस्या को स्पष्ट कर सकते हैं? –

+0

पूरे क्षेत्र को शामिल करने वाली विधि को शामिल करने के लिए मेरे उत्तर को संपादित किया गया। :-) –

+0

"जितना संभव हो सके कुछ सर्किलों के साथ कवर किया गया" कितना महत्वपूर्ण है? यदि पूर्ण न्यूनतम संख्याओं का उपयोग करने के लिए महत्वपूर्ण नहीं है, तो एरिक बैनविले जैसी तकनीकें कई मामलों के लिए अच्छे परिणाम दे सकती हैं। – erichui

उत्तर

0

अपनी बाधाओं के बारे में और जानने के बिना, मैं एक हेक्सागोनल टाइलिंग के नियमित हेक्सागोन से संबंधित डिस्क के साथ विमान के नियमित कवर को लेने का सुझाव दूंगा। फिर सभी डिस्क को आकार को छेड़छाड़ रखें।

7

आशा मैं आपके सवाल का सही ...

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

नोट: यह close packing of atoms in a unit cell के समान है।

संपादित करें: मेरी पिछली विधि ओवरलैपिंग के बिना जितना संभव हो उतना क्षेत्र शामिल करती है। अगर ओवरलैपिंग की अनुमति है, तो (मुझे विश्वास है) निम्न विधि न्यूनतम ओवरलैपिंग के साथ पूरे क्षेत्र को कवर करेगी।

जैसा कि आप शायद जानते हैं, नियमित बहुभुज के साथ 2 डी स्पेस के केवल 3 टेस्सेलेशंस हैं - वर्ग, त्रिकोण या हेक्सागोन का उपयोग करना। रणनीति इन बहुभुजों में से किसी एक का उपयोग करके टेसेलेट करना है और फिर प्रत्येक बहुभुज में एक सर्कल को घेरना है। एक हेक्सागोन इस विधि का उपयोग कर न्यूनतम क्षेत्र को बर्बाद कर देगा।

इसलिए, दिए गए सर्कल के त्रिज्या से, आवश्यक हेक्सागोन के आकार की गणना करें, हेक्सागोन का उपयोग करके क्षेत्र को टेसलेट करें और फिर प्रत्येक षट्भुज पर एक सर्कल को घेर लें।

एनबी:Eric Bainville ने इसी तरह की विधि का सुझाव दिया।

-- Flaviu Cipcigan

+2

यह तकनीक काम नहीं करती है, क्योंकि यह पूरे क्षेत्र को कवर नहीं करती है। –

1

मुझे पता है कि प्रश्न थोड़ा पुराना हो सकता है लेकिन हाल ही में मैं हेक्सागोनल ग्रिड का उपयोग बराबर मंडलियों के साथ भौगोलिक क्षेत्र को कवर के साथ एक समान समस्या मिला है और यह है कि कैसे मैं इसे हल:

  1. मेरी इनपुट डेटा मीटर में दिए गए सर्कल का त्रिज्या था और क्षेत्र की सीमाओं के निर्देशांक
  2. पहले मुझे बाउंड आयताकार मिला जो क्षेत्र
  3. तब बाएं तल से शुरू होता है दूरी से बिंदु त्रिकोणीय की ऊंचाई को दोगुना करने के लिए उपयोग किया जाता है जो हेक्सागोन बनाने के लिए उपयोग किया जाता है (इसकी तरफ मेरे सर्कल के त्रिज्या के समान होता है) और प्रत्येक बिंदु के लिए विन्सेंटी के सूत्र
  4. का उपयोग करके 0 डिग्री का असर, मैं जांचता हूं कि यह किसके साथ छेड़छाड़ करता है मेरा इनपुट क्षेत्र, यदि मैं इसे सहेजता हूं, तो दूसरी तरफ मैं इसे छोड़ देता हूं
  5. जब मैं किनारे पर गया तो मैं यह सुनिश्चित करने के लिए एक और जांच करता हूं कि मुझे
  6. के अंदर सभी बिंदुएं मिलेंगी 60 डिग्री, इसे जांचें, फिर 120 डिग्री तक, फिर से जांचें
  7. तीसरे चरण पर वापस जाएं लेकिन अब मैं 180 डिग्री
  8. और किनारे को फिर से एक और चेक के साथ अंक स्थानांतरित करता हूं और फिर चरण 6 लेकिन पहले 120 डिग्री तो 60 डिग्री
  9. में की तरह जारी रखने के लिए जब तक आप की तरह दिए गए छवि में, बेशक आप की त्रिज्या को कम करके सटीकता बढ़ा सकते हैं आयत

diagram of algorithm के शीर्ष बढ़त मिल गया सर्कल

मुझे पता है कि यह सबसे अच्छा विकल्प नहीं है लेकिन यह मेरे लिए बहुत अच्छा काम करता है।

मुझे उम्मीद है कि यह काफी समझ में आता है और किसी की भी मदद करेगा।

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