চতুর্দিকে বৃহত জ্যামিতিক বস্তু সংরক্ষণের জন্য কোন পদ্ধতিটিকে প্রাধান্য দেওয়া হয়?


15

জ্যামিতিক বস্তুগুলিকে চতুষ্কোণে (বা অষ্ট্রি) স্থাপন করার সময়, আপনি কয়েকটি উপায়ে একক নোডের চেয়ে বড় যে বস্তুগুলি রাখতে পারেন:

  1. প্রতিটি পাতায় বস্তুর রেফারেন্স স্থাপন করা যার জন্য এটি রয়েছে
  2. অবজেক্টের রেফারেন্সটি গভীর নোডে রাখার জন্য এটি সম্পূর্ণরূপে অন্তর্ভুক্ত
  3. # 1 এবং # 2 উভয়ই

উদাহরণ স্বরূপ:

এখানে চিত্র বর্ণনা লিখুন

এই চিত্রটিতে আপনি পাতার নোডের চারটি পদ্ধতিতে (পদ্ধতি # 1) বা কেবল মূল নোডে (পদ্ধতি # 2) অথবা উভয় (পদ্ধতি # 3) এ বৃত্তটি স্থাপন করতে পারেন।

চতুর্ভুজ জিজ্ঞাসা করার উদ্দেশ্যে, কোন পদ্ধতিটি বেশি সাধারণ এবং কেন?


1
অবশ্যই এটি একটি রেফারেন্স হওয়া উচিত। আমি জিজ্ঞাসা করতে চাই যে, চতুর্ভুজ জিজ্ঞাসার উদ্দেশ্যে, পাতাগুলি, পাতাগুলি বা উভয় ক্ষেত্রেই উল্লেখ থাকতে হবে কিনা।
nsantorello

আশাবাদী প্রশ্ন পরিষ্কার করার উদ্দেশ্য তৈরি করতে পিএস সম্পাদিত।
nsantorello

আপনি যা জিজ্ঞাসা সমর্থন করার চেষ্টা করছেন তা কী?
জো

@ জো আমি সংঘর্ষ সনাক্তকরণ, স্পেসিয়াল ইনডেক্সিং এবং অঞ্চল / হতাশাগ্রহণে বিশেষভাবে আগ্রহী।
nsantorello

1
@nsantorello নিয়ম সেই প্রশ্নের আপনি সমর্থন করতে চান তার যার উপর নির্ভর করে আলাদা হতে পারে, কিন্তু এই সংঘর্ষের সনাক্তকরণের জন্য খুব প্রাসঙ্গিক মনে হচ্ছে: stackoverflow.com/questions/4434335/...
জো

উত্তর:


8

ধরে নিই যে আপনি কোনও রেফারেন্স স্টোর করছেন, কোনও অবজেক্ট নিজেই নয়, আপনার আবেদনের উপর নির্ভর করে এটি আলাদাভাবে করা বুদ্ধিমান হতে পারে।

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

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


ধন্যবাদ রাফ, আমি মনে করি আপনি ঠিক বলেছেন যে এটি প্রয়োগের উপর নির্ভর করে।
nsantorello

6

কোয়াড্ট্রির একটি সুবিধা হ'ল যদি চাইল্ড নোডের সমস্ত একই তথ্য থাকে তবে আপনাকে কোনও নোডকে তার চাইল্ড নোডে বিভক্ত করতে হবে না। এটি আপনাকে প্রচুর স্মৃতি সাশ্রয় করতে পারে এবং দ্রুত প্রক্রিয়াজাত করতে পারে।

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

অন্যদিকে, যদি পাতার নোডগুলিতে আপনার অবজেক্ট থাকে তবে এটি আপনাকে মিথ্যা ধনাত্মকতা দূর করতে সহায়তা করতে পারে (যে বস্তুগুলি আপনাকে ছেদ জন্য পরীক্ষা করতে হবে, কারণ সেগুলি সঠিক নোডে রয়েছে তবে এটি আসলে ছেদ করে না)।

সুতরাং, আমি মনে করি উভয় পদ্ধতিরই তাদের ব্যবহার রয়েছে এবং কোনটি ব্যবহার করবেন তা কীভাবে চয়ন করবেন তা আমি নিশ্চিত নই।

আমি সম্ভবত # 3 পদ্ধতির ব্যবহার করব না, কারণ আমি এটি সম্পর্কে কোনও ইতিবাচকতা দেখছি না।

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