ত্রিভুজ সংলগ্ন ডেটা বিল্ডিং


9

ত্রিভুজ সূচকগুলির একটি তালিকা দেওয়া হয়েছে, জ্যামিতি শেডারের জন্য সংলগ্নতার সাথে সূচকের তালিকায় কী রূপান্তর করা যায়?

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

আমি জানি যে তালিকার যে কোনও প্রদত্ত ত্রিভুজটির জন্য, সূচকগুলি {0, 1}, {1, 2} এবং {2, 0} (বা {n, n + 1}, {n + 1, n + 2}, { n + 2, n you আপনি যদি চান) এর প্রান্তগুলি তৈরি করে; সূচকের তালিকাটি সুগঠিত এবং সঠিকভাবে বাতাসের ক্রমকে সম্মান করে।

আমি জানি যে প্রদত্ত যে কোনও প্রান্তের জন্য, আমরা অন্য সূচিগুলির মধ্যে দুটি ব্যবহার করে যা অন্য ত্রিভুজের জন্য পুরো তালিকাটি অনুসন্ধান করতে পারি এবং সেই ত্রিভুজটির তৃতীয় সূচকটি সেই প্রান্তের জন্য সংলগ্ন ত্রিভুজটি সম্পূর্ণ করার জন্য ব্যবহার করা হয়।

আমি জানি যে সংলগ্ন তালিকায় প্রতিটি মূল ত্রিভুজটি 6 টি সূচক দ্বারা উপস্থাপিত হয়, মূল সূচকগুলি 0, 2, 4 স্লটে যায়; সংলগ্নতা পূর্ণ করতে নতুন সূচকগুলি স্লট 1, 3, 5 এ চলে যাবে edge 0, 1 edge প্রান্তের জন্য সম্পন্ন করা সূচকটি স্লট 1 তে যায়, সূচকটি 1 2, 2 edge প্রান্তের জন্য পূর্ণ হয় সূচক 3, সূচকে যায় প্রান্তের জন্য সম্পূর্ণ করতে {2, 1 sl স্লট 5 এ যায়।

আমি কি চেষ্টা করেছি?

আমি এটিকে নিষ্ঠুর করার চেষ্টা করেছি, এবং হ্যাঁ, এটি কার্যকর হবে, তবে আমি আরও মার্জিত পদ্ধতির পরে এসেছি after

আমি এরিক লেঙ্গেল এর প্রান্ত তালিকা নির্মাতাকে চেষ্টা করেছি, কিন্তু (1) এটি মূল ত্রিভুজ আদেশটিকে সম্মান করে বলে মনে হচ্ছে না, (২) এটি ঘুরার আদেশকে সম্মান করে বলে মনে হচ্ছে না, (3) এটি কোথায় কাদা মাটির মতো পরিষ্কার clear আপনি প্রান্তের তালিকাটি তৈরি করার পরে এবং (4) আমার কাছে একটি নমুনা কোডের সন্দেহ রয়েছে যা "ত্রিভুজ ইন্ডেক্স" বনাম "ফেসআইডেক্স" হিসাবে যেমন সুস্পষ্ট উজ্জ্বল ত্রুটি রয়েছে - লেখক এমনকি কোডটিও সংকলন করেছেন, তাতে কোনও আপত্তি নেই এটি যাচাই করবেন?

তো - এখান থেকে কোনও পরামর্শ বা পয়েন্টার?


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

উত্তর:


11

আমি এটির জন্য একটি হ্যাশ টেবিল ব্যবহার করার চেষ্টা করব (উদাহরণস্বরূপ, std::unordered_mapআপনি যদি সি ++ তে থাকেন)। একটি হ্যাশ টেবিল তৈরি করুন যা অর্ধ-প্রান্তের অর্ধ-প্রান্তের অন্তর্ভুক্ত ত্রিভুজের তৃতীয় সূচীতে অর্ধ-প্রান্ত (সূচকগুলির জুড়ি হিসাবে প্রকাশিত) থেকে মানচিত্র তৈরি করুন।

এটি কেবল ত্রিভুজ তালিকার উপরে পুনরাবৃত্তি করে এবং প্রতিটি ত্রিভুজের তিনটি অর্ধ-প্রান্ত হ্যাশ টেবিলের সাথে যুক্ত করে তৈরি করা যেতে পারে। যদি আপনার প্রাথমিক সূচীর তালিকায় সংলগ্ন ত্রিভুজগুলির এক জোড়া (0, 1, 2, 2, 1, 3) থাকে তবে আপনি একটি হ্যাশ টেবিল সমেত শেষ করবেন:

(0, 1) -> 2
(1, 2) -> 0
(2, 0) -> 1
(2, 1) -> 3
(1, 3) -> 2
(3, 2) -> 1

নোট করুন যে প্রান্তগুলি (1, 2) এবং (2, 1) উভয়ই টেবিলটিতে উপস্থিত হয়, প্রান্তের দুটি পক্ষকে উপস্থাপন করে এবং দুটি ত্রিভুজের প্রত্যেকটির তৃতীয় শীর্ষকে নির্দেশ করে।

তারপরে, সংলগ্ন ডেটা তৈরি করতে আপনাকে যা করতে হবে তা হ'ল আবার ত্রিভুজ তালিকাটি পুনরাবৃত্তি করতে হবে এবং প্রতিটি ত্রিভুজটির কিনারা বিপরীত ঘোর দিয়ে জিজ্ঞাসা করতে হবে। সুতরাং ত্রিভুজটি প্রক্রিয়া করার সময় (0, 1, 2) আপনি প্রান্তগুলি (1, 0), (2, 1) এবং (0, 2) কোয়েরি করতেন। এটি উপস্থিত থাকলে প্রতিটি প্রান্তের বিপরীতমুখীটি সন্ধান করবে।


1
শীতল, বিপরীত ক্রমের সাহায্যে প্রান্তগুলি অনুসন্ধান করা ছিল হারিয়ে যাওয়া তথ্যের মূল অংশ; একটি চ্যাম্প কাজ করে; +1 এবং স্বীকৃত।
ম্যাক্সিমাস মিনিমাস

2

অর্ধ প্রান্ত ডাটা স্ট্রাকচার

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

ডেটা স্ট্রাকচারটি খুব দক্ষতার সাথে সংযোগ, সংলগ্নতা এবং এ সম্পর্কিত প্রশ্ন তৈরি করে। দক্ষতার সাথে ডেটা উত্পন্ন করার জন্য অ্যালগরিদম রয়েছে, যদিও প্রয়োজনীয়ভাবে "গেম রান-টাইম" দক্ষতার সাথে করা হয়নি (আপনি সম্ভবত আপনার সম্পদ পাইপলাইনে এই অফলাইনটি করতে চাইবেন)।

আরও দেখুন এই ব্লগ পোস্ট । আমি বিশ্বাস করি কাঠামো এবং অ্যালগরিদমগুলি রিয়েল-টাইম সংঘর্ষ সনাক্তকরণেও রয়েছে, তবে আমি নিশ্চিত মনে করতে পারি না এবং অফিসে একটি অনুলিপি রাখি না।


-1, দুঃখিত, তবে এটি ইতিমধ্যে আমার কাছে নেই এমন কোনও তথ্য দেয়নি এবং জিএসে ব্যবহারের জন্য সংলগ্নতার সাথে একটি তালিকা তৈরির পরিবর্তে সিপিইউতে ব্যবহারের ভিত্তিতে ছিল।
ম্যাক্সিমাস মিনিমাস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.