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