ধরুন আমি একটি 2D nonoverlapping ত্রিভুজ গঠিত জাল আছে , এবং পয়েন্ট একটি সেট { P আমি } এম আমি = 1 ⊂ -এর সাথে ∪ এন ট = 1 টি কে । প্রতিটি বিন্দু কোন ত্রিভুজটি অন্তর্ভুক্ত তা নির্ধারণ করার সর্বোত্তম উপায় কী?
উদাহরণস্বরূপ, নীচের চিত্রটিতে আমাদের কাছে , p 2 ∈ T 4 , p 3 ∈ T 2 রয়েছে , সুতরাং আমি একটি ফাংশন চাই যা f কে তালিকার ফায়ার ( পি 1 , পি 2 , পি 3 ) = [ 2 , 4 , 2 ] ।
মতলব ফাংশন পয়েন্টলোকেশন রয়েছে যা ডেলাউন মেসের জন্য আমি যা চাই তা করে তবে এটি সাধারণ জঞ্জাল ব্যর্থ হয়।
আমার প্রথম (বোবা) চিন্তার সমস্ত নোড জন্য, হয় , খুঁজে বের করতে সব ত্রিভুজ মাধ্যমে লুপ যা ত্রিভুজ পি আমি হয় যাইহোক, এই হল অত্যন্ত অদক্ষ হয় -। আপনি প্রতি বিন্দু জন্য প্রতি ত্রিভুজ মাধ্যেমে লুপ করতে থাকতে পারে, তাই এটি O ( N ⋅ M ) এর কাজ নিতে পারে ।
আমার পরবর্তী চিন্তার জন্য সব পয়েন্ট হয় নিকটতম জাল নোড মাধ্যমে নিকটতম-প্রতিবেশী অনুসন্ধান খুঁজে, তাহলে সেই নিকটতম নোড সংযুক্ত ত্রিভুজ মাধ্যমে সন্ধান। এই ক্ষেত্রে, কাজটি O ( a ⋅ M ⋅ l o g ( N ) ) হবে , যেখানে a জালের যে কোনও নোডের সাথে সংযুক্ত সবচেয়ে বেশি ত্রিভুজ রয়েছে। এই পদ্ধতির সাথে বেশ কয়েকটি সমাধানযোগ্য তবে বিরক্তিকর সমস্যা রয়েছে,
- এটির জন্য একটি দক্ষ নিকটতম-প্রতিবেশী অনুসন্ধান (অথবা এটিতে একটি লাইব্রেরি সন্ধান করা) বাস্তবায়ন করা দরকার, যা একটি অনানুষ্ঠানিক কাজ হতে পারে।
- এটিতে প্রতিটি নোডের সাথে কোন ত্রিভুজগুলি সংযুক্ত রয়েছে তার একটি তালিকা সংরক্ষণ করতে হবে, বর্তমানে আমার কোডটি সেট করা হয়নি - এখনই কেবল নোড স্থানাঙ্কের একটি তালিকা এবং উপাদানগুলির একটি তালিকা রয়েছে।
সামগ্রিকভাবে এটি অবহেলা বলে মনে হচ্ছে এবং আমি মনে করি এর থেকে আরও ভাল উপায় থাকা উচিত। এটি অবশ্যই একটি সমস্যা হতে পারে যা প্রচুর উত্থাপিত হয়, তাই আমি ভাবছিলাম যে নোডগুলি কী রয়েছে তাত্ত্বিকভাবে বা উপলব্ধ গ্রন্থাগারের দিক থেকে কোনটি ত্রিভুজগুলি সন্ধানের জন্য সবচেয়ে ভাল উপায়ের পরামর্শ দিতে পারে কিনা তা আমি ভাবছিলাম।
ধন্যবাদ!