मैं 3 डी अंतरिक्ष को यादृच्छिक अक्ष संरेखित बॉक्स आकृतियों में विभाजित करने के लिए एक विधि की आवश्यकता है। अभी के लिए मैं वर्तमान में परीक्षण उद्देश्यों के लिए 2d स्थान को विभाजित कर रहा हूं। मेरे पास आया सबसे तात्कालिक दृष्टिकोण आकार (1, 1) की एक आयत को परिभाषित करना था और फिर अक्ष एक्स और वाई के बीच बारी-बारी से सभी मौजूदा आयतों को दो असमान आयतों में विभाजित करना था।
यहाँ समस्या स्पष्ट है। यह दृष्टिकोण लंबी स्ट्रेचिंग लाइनों (लाल रंग में चिह्नित) के परिणामस्वरूप होता है
मैं जो चाहूंगा वह कुछ और जैविक है (मैंने एक उदाहरण शामिल किया)
देखें, ऊपर से नीचे या दाएं से बाएं कोई लंबी सीधी रेखाएं नहीं।
एकमात्र बाधा यह है कि मैं आकार की बारीकियों को प्रभावित किए बिना आयत के न्यूनतम आकार को सीमित करना चाह सकता हूं। यानी अगर सबसे छोटी आयत 1 वर्ग सेंटीमीटर है तो सेकेंड्स में सबसे छोटा कमरा 2 वर्ग इकाइयों का नहीं होना चाहिए।
इसलिए आदर्श रूप से एल्गोरिथम को निम्नलिखित तीन बाधाओं को पूरा करना चाहिए:
- रेक्टैंगल्स शिशु रूप से छोटे नहीं होते हैं।
- रेक्ट साइज़ सबसे छोटे रेक्ट साइज़ का असतत गुणा नहीं है। यानी यदि छोटी से छोटी आयत 3 वर्ग इकाई है तो बड़ी से बड़ी जड़ें 6, 9, 12 और इसके बाद वाली चौकोर इकाई होने के लिए विवश नहीं होती हैं और इसके बजाय उस मामले के लिए 3.2 या 4.7 हो सकती हैं)।
- एल्गोरिथ्म बहुपद समय (तेजी से गणना करने की आवश्यकता) में चलता है।