কোয়াডট্রি: কেবল পয়েন্ট, বা অঞ্চলগুলি সঞ্চয় করুন?


9

সংঘর্ষ শনাক্ত করার জন্য চলন্ত বস্তুর উপর নজর রাখতে আমি একটি চতুষ্কোণ বিকাশ করছি। প্রতিটি বস্তুর একটি সীমাবদ্ধ আকার রয়েছে, আসুন ধরা যাক তারা সমস্ত চেনাশোনা। (এটি একটি 2 ডি টপ-ডাউন গেম)

আমি নিশ্চিত না যে প্রতিটি বস্তুর কেবলমাত্র অবস্থান, বা পুরো সীমানা আকার সংরক্ষণ করব।

পয়েন্টগুলির সাথে কাজ করা থাকলে, সন্নিবেশ এবং মহকুমা সহজ, কারণ বস্তুগুলি কখনও একাধিক নোড বিস্তৃত করতে পারে না। অন্যদিকে, কোনও অবজেক্টের সান্নিধ্য অনুসন্ধানটি সংঘর্ষগুলি মিস করতে পারে, কারণ এটি বস্তুর মাত্রা বিবেচনায় নেবে না। আপনার কেবলমাত্র পয়েন্ট থাকলে কীভাবে অঞ্চলটি গণনা করবেন?

প্রতিবেশী নোড থেকে বস্তুর মধ্যে সংঘর্ষ

অঞ্চলগুলির সাথে কাজ করা হলে, একাধিক নোড ছড়িয়ে থাকা কোনও বস্তু কীভাবে পরিচালনা করবেন? এটি নোডের সক্ষমতা ছাড়িয়ে গেলেও, এটি সম্পূর্ণরূপে নিকটতম প্যারেন্ট নোডে প্রবেশ করা উচিত?

কোন নোডে লাল বস্তু থাকা উচিত?

ধন্যবাদ।

উত্তর:


4

যদি বর্ধিত বস্তু (অঞ্চল) একটি চতুষ্কোণে সংরক্ষণ করে তবে অবজেক্টটি স্পর্শ করা সমস্ত পাত নোড থেকে রেফারেন্স করা উচিত। আমি সর্বনিম্ন সাধারণ পূর্বপুরুষের সন্ধান করার চেষ্টা করব না এবং এটি সেখানে সংরক্ষণ করার চেষ্টা করব না, কারণ উদাহরণস্বরূপ কোনও ছোট বস্তু যা একটি উচ্চ-স্তরের সীমানা অতিক্রম করার পরে খুব উচ্চ নোডে এসে শেষ হবে এবং সেই বৃহত্তর সমস্ত কিছুর বিরুদ্ধে পরীক্ষা করা আবশ্যক must , যখন আপনি সংঘর্ষের ক্যোয়ারী এবং এ জাতীয় পছন্দ করেন তখন উচ্চ-স্তরের নোড।

তবে আপনাকেও সাবধানতা অবলম্বন করতে হবে কারণ অনেকগুলি নোড থেকে বড় অবজেক্টগুলি রেফারেন্স করা শেষ হতে পারে এবং এগুলি ঘুরতে যাওয়ার সময় আপডেট করা ব্যয়বহুল হয়ে ওঠে এবং সংঘর্ষের জন্য এগুলিকে অনেকবার পুনরায় চেক করাতে পারে etc. আপনার ব্যবহারের ক্ষেত্রে এটি নির্ভর করে গাছে একটি উচ্চ স্তরে বড় অবজেক্টগুলি সঞ্চয় করতে এক ধরণের হিউরিস্টিক ব্যবহার করার উপযুক্ত হতে পারে, তবে এটি অ্যালগরিদমগুলিকে জটিল করে তুলবে, তাই যদি আপনি এটি স্থাপন না করেন তবে সম্ভবত আমি বিরক্ত হবেন না যদি আপনি এটি প্রমাণ করেন না যে এটি আপনার নির্দিষ্ট ক্ষেত্রে সত্যই পারফরম্যান্সের সমস্যা।

একইভাবে, কোনও অঞ্চলকে জিজ্ঞাসা করতে, ক্যোয়ারিতে কোয়েরি অঞ্চলটি স্পর্শ করে সমস্ত লিফ নোডের দিকে নজর দেওয়া উচিত।

এগুলি মূলত একই অ্যালগরিদম ব্যবহার করে যা একটি অঞ্চল দিয়ে শুরু করে গাছের উপর দিয়ে ছোঁয়া পাতার নোডগুলি খুঁজে পেতে এটিকে নীচে চাপিয়ে দেয়। এটি গভীরতার প্রথম ট্র্যাভারসাল, তবে প্রতিটি নোডে আপনি কোনও শিশুকে ছাঁটাই করতে পারেন যা অঞ্চলটিকে স্পর্শ করে না। ট্র্যাভারসালটিতে আপনি কোথায় আছেন সে সম্পর্কে নজর রাখতে আপনাকে একটি স্ট্যাক বজায় রাখতে হবে।


ধন্যবাদ, এটি উপলব্ধি করে। অবশ্যই, ক্রস নোড অবজেক্টগুলি প্রক্রিয়াকরণ কোনও নোডের অভ্যন্তরে থাকা অবজেক্টগুলির চেয়ে ধীর হবে তবে আমি এর আশেপাশে কোনও উপায় দেখতে পাচ্ছি না। আমি টুকরো টুকরো টুকরো রাখার জন্য নোডের ক্ষমতা বাড়িয়ে তুলতে পারতাম, তবে এটি সংঘর্ষ সনাক্তকরণে অন্তর্ভুক্ত বস্তুর সংখ্যা বাড়িয়ে তুলবে। আমি একটি ভাল ভারসাম্য খুঁজে পেতে এটি সঙ্গে চারপাশে খেলব।
আলেকপ

4

আপনাকে অবশ্যই এটি একেবারে ক্ষুদ্রতম নোডে সংরক্ষণ করতে হবে যা এটি সম্পূর্ণরূপে ধারণ করে - এমনকি যদি এটি ক্ষমতা ছাড়িয়ে যায় (একটি পুনরায় আকারযুক্ত পাত্রে ব্যবহার করুন)।


2

আমি @ নাথন রিডের উত্তরের প্রতিক্রিয়া হিসাবে এটি একটি মন্তব্য হিসাবে যুক্ত করব, এটি মন্তব্য করা খুব বড় নয়, এবং সম্ভবত যে কোনও ক্ষেত্রে পৃথক উত্তর হওয়ার যোগ্য।

আমরা তার উত্তরে যা প্রস্তাবিত হয়েছিল তা সুনির্দিষ্টভাবে করছিলাম, এবং প্রকৃতপক্ষে এই পৃষ্ঠার সাথে সংযোগ দেওয়ার উত্সটিতে মন্তব্য করব। বেশিরভাগ ক্ষেত্রে, এটি অত্যন্ত ভালভাবে কাজ করেছে, প্রতি দুই বা তিন মাসের মধ্যে একবার ব্যতীত, আমরা এলোমেলোভাবে এমন একটি সার্ভার হারিয়ে ফেলছি যা অনুসন্ধানের অনুসন্ধানের বিশাল সময়কালের কারণে অ-প্রতিক্রিয়াশীল হয়ে গেছে।

সমস্যার মূল কারণটি আমার নজরে এসেছিল চেষ্টা করার চেষ্টা করার জন্য এবং এটি কী কারণে ঘটছে তা নির্ধারণের জন্য একটি পারফরম্যান্স চেক করার সময়। আপনি যদি ওভারল্যাপিং অবজেক্টগুলিকে অনুমতি দেন তবে এটি কেবলমাত্র উদ্বেগের বিষয়। আমাদের গেমটিতে আমরা করি, এবং সবচেয়ে খারাপ পরিস্থিতিতে এটি মাঝেমধ্যে একটি দক্ষতা হ্রাসকারী গভীরতার স্পাইকে নিয়ে যায়।

আমাদের একটি প্রান্তের কেস রয়েছে যেখানে বাউন্ডিং ডিস্ক সহ প্রায় 100 টি অবজেক্ট খুব নিকটেই ক্লাস্টার হয়েছিল। এটি গাছের খুব গভীর স্পাইকের সমস্যা তৈরি করে, কারণ আমরা এমন এক জায়গায় পৌঁছেছি যেখানে চতুর্ভুজ নোড দ্বারা আচ্ছাদিত ক্ষেত্রের চেয়ে বস্তুগুলি বড় ছিল, তাই প্রতিটি নতুন বস্তু একাধিক নোডে প্রদর্শিত হয়েছিল, যার ফলে বৃহত্তর মহকুমা বাড়ে গাছ, এইভাবে সমস্যা নিয়ন্ত্রণের বাইরে চলেছে ing

এর থেকে গ্রহণযোগ্যতাটি হ'ল আপনি যদি বস্তু অঞ্চলগুলিকে ওভারল্যাপ করার অনুমতি দেন তবে আপনার গাছটি আরও গভীর না হয়ে যায় তা নিশ্চিত করার জন্য আপনি যদি বস্তুর টান ক্লাস্টার পেয়ে থাকেন তবে বিষয়গুলিতে ঘনিষ্ঠ নজর রাখুন।

আমি যে সমাধানটি বর্তমানে অনুসন্ধান করছি তা হ'ল পয়েন্ট হিসাবে বস্তুগুলি সংরক্ষণ করা এবং তারপরে কোনও অনুসন্ধান করার সময়, গাছের মধ্যে সঞ্চিত সর্বোচ্চ ব্যাসার্ধ দ্বারা অনুসন্ধানের আয়তক্ষেত্রের সীমা বাড়ানো। এটি আমাদের পক্ষে কাজ করা উচিত, কারণ গাছটি প্রথম পাসের অনুসন্ধান হয়, তারপরে আমরা আরও কয়েকটি মানদণ্ডের চেক সহ একটি সত্য বৃত্ত ভিত্তিক রেঞ্জ চেক করি, যাতে অতিরিক্ত মিথ্যা সতর্কতাগুলি ফিল্টার হয়ে যায়।

আপনার আসল মাইলেজ আলাদা হতে পারে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.