আমি লাইন বিভাগগুলির একটি সেট দিয়ে দ্বিগুণ সংযুক্ত প্রান্ত তালিকাটি কীভাবে তৈরি করব?


10

একটি প্রদত্ত প্ল্যানার গ্রাফের জন্য সমতল এমবেড, লাইন অংশগুলির একটি সেট দ্বারা সংজ্ঞায়িত , প্রত্যেক সেগমেন্ট তার এন্ড পয়েন্ট দ্বারা প্রতিনিধিত্ব করা হয় । প্ল্যানার মহকুমার জন্য একটি ডিসিএল ডেটা কাঠামো তৈরি করুন, একটি অ্যালগরিদম বর্ণনা করুন, এটি সঠিকতা প্রমাণ করুন এবং জটিলতাটি দেখান।G(V,E)E={e1,...,em}ei{Li,Ri}

মতে DCEL ডাটা স্ট্রাকচার তার বিবরণ , সেখানে DCEL বিভিন্ন বস্তুর মধ্যে একাধিক সংযোগ (যেমন ছেদচিহ্ন, প্রান্ত এবং মুখমন্ডল) হয়। সুতরাং, একটি ডিসিইএল নির্মাণ এবং রক্ষণাবেক্ষণ করা কঠিন বলে মনে হচ্ছে।

আপনি কি কোনও দক্ষ অ্যালগরিদম সম্পর্কে জানেন যা একটি ডিসিএল ডেটা কাঠামো তৈরি করতে ব্যবহার করা যেতে পারে?

উত্তর:


8

ডেটা স্ট্রাকচার ( উইকিপিডিয়া নিবন্ধের সাথে সামঞ্জস্যপূর্ণ কনভেনশন ):

struct half_edge;

struct vertex {
    struct half_edge *rep;  /* rep->tail == this */
};

struct face {
    struct half_edge *rep;  /* rep->left == this */
};

struct half_edge {
    struct half_edge *prev;  /* prev->next == this */
    struct half_edge *next;  /* next->prev == this */
    struct half_edge *twin;  /* twin->twin == this */
    struct vertex *tail;     /* twin->next->tail == tail &&
                                prev->twin->tail == tail */
    struct face *left;       /* prev->left == left && next->left == left */
};

অ্যালগরিদম

  1. প্রতিটি শেষ পয়েন্টের জন্য, একটি শীর্ষবিন্দু তৈরি করুন ।

  2. প্রতিটি ইনপুট বিভাগের জন্য, দুটি অর্ধ-প্রান্ত তৈরি করুন , এবং তাদের লেজ বিভাজক এবং যমজ বরাদ্দ করুন।

  3. প্রতিটি শেষ পয়েন্টের জন্য, অর্ধ-প্রান্তগুলি সাজান যাঁর লেজ প্রান্তটি ঘড়ির কাঁটার ক্রমে end

  4. e1, e2ঘড়ির কাঁটার অর্ধে অর্ধ-প্রান্তের প্রতিটি জুটির জন্য , বরাদ্দ করুন e1->twin->next = e2এবংe2->prev = e1->twin

  5. অর্ধ-প্রান্তগুলির একটি বেছে নিন এবং এটিকে শেষ পয়েন্টের জন্য প্রতিনিধি হিসাবে নির্ধারণ করুন। (কেসটি হ্রাস করুন: যদি eসাজানো তালিকায় কেবলমাত্র একটি অর্ধ প্রান্ত থাকে set e->twin->next = eএবংe->prev = e->twin )। পরবর্তী পয়েন্টারগুলি হ'ল অর্ধ প্রান্তগুলিতে একটি অনুচ্ছেদ।

  6. প্রতিটি চক্রের জন্য, একটি চেহারা কাঠামো বরাদ্দ করুন এবং বরাদ্দ করুন ।


2
মূলত একগুচ্ছ গ্র্নারলি বুককিপিং। সম্ভবত এই কারণেই পাঠ্যপুস্তকের লেখকরা বিশদে যেতে নারাজ।
pshufb
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.