অধঃপতন বহুভুজ কী কী? একটি প্রদত্ত জোড়া বহুভুজ অধ: পতিত কিনা তা কীভাবে চেক করবে?
অধঃপতন বহুভুজ কী কী? একটি প্রদত্ত জোড়া বহুভুজ অধ: পতিত কিনা তা কীভাবে চেক করবে?
উত্তর:
একটি বহুভুজ হ'ল অবনমিত হয় যদি এর কিছু অংশগুলি একে অপরের সাথে থাকে। যেমন ত্রিভুজ (0,0), (0,1), (0,0) হ্রাসপ্রাপ্ত। এটির 3 টি দিক এবং 3 টি শীর্ষ কোণ রয়েছে, তবে দুটি দিকের দ্বার পুনরাবৃত্তি হয়। একাধিকবার ভার্টেক্সের পুনরাবৃত্তি করা সম্ভব (উদাহরণস্বরূপ (0,0), (0,0), (0,0) আরেকটি অবক্ষয়যুক্ত ত্রিভুজ। সংজ্ঞা অনুসারে, বহুভুজ অধ: পতিত কিনা তা যাচাই করা সহজ।
কিন্তু অধঃপতন বহুভুজ ব্যবহার কি? গ্রাফিক ত্বরণ (3 ডি অঙ্কন) থেকে একটি অ্যাপ্লিকেশন নিম্নরূপ:
3 ডি অঙ্কনে জিপিইউ সাধারণত চিত্রগুলি রেন্ডার করতে ত্রিকোণ ব্যবহার করে। ত্রিভুজগুলি ব্যবহার করার (সহজ) কারণ হ'ল এগুলি সহজতম 2 ডি অবজেক্ট তাই খুব বেশি হার্ডওয়ারের প্রয়োজন নেই।
যদি আমরা এই জিপিইউ সীমাবদ্ধতার দ্বারা কোনও জটিল 3 ডি চিত্র আঁকতে চাই তবে আমাদের এটিকে একাধিক ত্রিভুজগুলিতে বিভক্ত করতে হবে। তবে আমরা যদি প্রতিটি ত্রিভুজ পৃথকভাবে রেন্ডার জন্য জিপিইউকে কল করি তবে এটি খুব ধীর হবে (কলগুলির সংখ্যার কারণে)। সুতরাং জিপিইউতে কল সংখ্যা কমাতে ত্রিভুজ স্ট্রিপটি ব্যবহৃত হয়। ত্রিভুজ রেখাচিত্রমালা একটি ভাল ব্যাখ্যা পাওয়া যেতে পারে মাইক্রোসফট ডকুমেন্টেশন: ট্রায়াঙ্গেল রেখাচিত্রমালা , এছাড়াও তোমার জন্য উইকি দেখতে পারেন: ট্রায়াঙ্গেল স্ট্রিপ ।
কিন্তু সমস্যা দেখা দেয় যখন আমরা একটি স্ট্রিপে দুটি পৃথক বস্তু আঁকতে চাই। এই ক্ষেত্রে ত্রিভুজগুলি হ্রাস করতে সহায়তা করে। জিপিইউ অধঃপতিত ত্রিভুজগুলি সনাক্ত করতে পারে এবং তাদের অঙ্কন এড়িয়ে যেতে পারে। সুতরাং আমরা একটি ডিজেনরেট ত্রিভুজ দিয়ে দুটি পৃথক স্ট্রিপ সংযোগ করতে পারি।
সাধারণভাবে আমাদের যদি হয় বিভিন্ন উপাদান, যেমন আমাদের ইতিমধ্যে তাদের সংশ্লিষ্ট ত্রিভুজ স্ট্রিপগুলি রয়েছে, আমরা জিপিইউতে কেবল একটি কল করে সেগুলি সমস্ত আঁকতে পারি। এটি অতিরিক্ত মেমরির ব্যবহারের কারণ ঘটায়, তবে এটি জিপিইউতে রেন্ডারিংয়ের জন্য কল করার সংখ্যা এবং অতিরিক্ত, অবনমিত ত্রিভুজ ব্যবহারের ওভারহেডের মধ্যে বাণিজ্য।
একটি অধঃপতন বহুভুজ হ'ল শূন্য অঞ্চল।
অন্যরা যেমন উল্লেখ করেছে, এটি নির্ভর করে। সাধারণভাবে বলতে গেলে, বহুভুজটি হ'ল অ-অবনমিত হয় যদি এর কোনও ব্যতিক্রমী পয়েন্ট না থাকে তবে এটি সমস্যার এক ধাপ পিছনে ফেলে দেয়; "ব্যাহত" কি?
আসল উত্তরটি হ'ল একটি বহুভুজ স্পষ্টকরণের লঙ্ঘন করলে অবনতি হয়। সামান্য অভদ্র উত্তরটি হ'ল একটি বহুভুজ হ'ল যদি এটি একটি প্রান্তের কেস হয় যা আপনার অ্যালগরিদম পরিচালনা করতে পারে না।
জিআইএসের বিশ্ব থেকে এখানে একটি উদাহরণ। OGC সরল বৈশিষ্ট্য স্পেসিফিকেশন কি একটি বহুভুজ "বৈধ" করে তোলে একটি খুব সতর্কতা অবলম্বন সংজ্ঞা হয়েছে। বিভাগ 6.1.11.1 থেকে উদ্ধৃতি:
পলিগনস (যে বহুবিধ বৈধ বহনকারী বিধিগুলি বিধি হিসাবে চিহ্নিত করা হয়েছে) এর জন্য নিম্নলিখিত পদক্ষেপ রয়েছে:
ক) বহুভুজগুলি টপোলজিকভাবে বন্ধ রয়েছে;
খ) বহুভুজের সীমানা লিনিয়ারিংয়ের একটি সেট নিয়ে গঠিত যা এর বাহ্যিক এবং অভ্যন্তরীণ সীমানা তৈরি করে;
গ) সীমানা ক্রসে কোনও দুটি রিং এবং বহুভুজের সীমানায় থাকা রিংগুলি একটি পয়েন্টে ছেদ করতে পারে তবে কেবল একটি স্পর্শক হিসাবে, যেমন
;দ্রষ্টব্য: এই শেষ শর্তটি বলে যে দুটি বক্ররেখার জন্য সাধারণ সময়ে, কাছের পয়েন্টগুলি সাধারণ হতে পারে না। এটি প্রতিটি সাধারণ পয়েন্টকে স্পর্শকাতরতার বিন্দু হতে বাধ্য করে।
d) বহুভুজের কাটা লাইন, স্পাইক বা পাঙ্কচার না থাকতে পারে যেমন: ;
e) প্রতিটি বহুভুজের অভ্যন্তরটি একটি সংযুক্ত বিন্দু সেট;
চ) 1 বা আরও বেশি ছিদ্রযুক্ত বহুভুজের বাইরের অংশটি সংযুক্ত নয়। প্রতিটি গর্ত বহির্মুখী একটি সংযুক্ত উপাদান সংজ্ঞায়িত করে।
উপরের মতামতগুলিতে, অভ্যন্তর, বন্ধ এবং বাহ্যিকের স্ট্যান্ডার্ড টপোলজিকাল সংজ্ঞা রয়েছে। (ক) এবং (সি) এর সংমিশ্রণটি একটি বহুভুজকে নিয়মিত বন্ধ পয়েন্ট সেট করে।