what is Polygon Clipping:-
एक polygon को आम तौर पर vertices के collection के रूप में store किया जाता है। कोई भी क्लिपिंग एल्गोरिथ्म एक collection लेता है, और एक नया collection आउटपुट करता है। एक कटा हुआ polygon, एक polygon भी होता है। ध्यान दें कि क्लिप किए गए polygon में अक्सर अनक्लिप्ड की तुलना में अधिक वर्टिकल होते हैं, लेकिन इसकी संख्या समान या कम भी हो सकती है। अगर काटा नहीं गया पॉलीगॉन पूरी तरह से क्लिपिंग बाउंड्री के बाहर है, तो क्लिप किए गए पॉलीगॉन में ज़ीरो वर्टिकल भी होते हैं।
क्लिपिंग विंडो specified करके polygon को भी क्लिप किया जा सकता है। एक एल्गोरिथम जो polygon को क्लिप करता है उसे कई अलग-अलग case से निपटना चाहिए। यह case विशेष रूप से noteworthy है कि concave polygons को दो अलग-अलग polygons में काट दिया जाता है। कुल मिलाकर, Clipping का कार्य complex लगता है। Clip rectangle के प्रत्येक edges के खिलाफ polygon के प्रत्येक किनारे का testing किया जाना चाहिए; नए edges को जोड़ा जाना चाहिए, और मौजूदा edges को give up, बनाए रखना या divide करना चाहिए। एक पॉलीगॉन को क्लिप करने से कई पॉलीगॉन बन सकते हैं हमें इन सभी case निपटने के लिए एक organized way की जरूरत है।
Sutherland-Hodgman Polygon Clipping Algorithm:-
कई famous polygon clipping algorithm हैं, जिनमें से प्रत्येक की अपनी ताकत और कमजोरियां हैं। सबसे पुराने को Sutherland-Hodgman Polygon Clipping Algorithm कहा जाता है। यह समस्या को हल करने के लिए फूट डालो और जीतो की रणनीति का उपयोग करता है। सबसे पहले, यह पॉलीगॉन के नए कोने प्राप्त करने के लिए पॉलीगॉन विंडो के बाएं किनारे पर पॉलीगॉन को क्लिप करता है। इन नए कोने का उपयोग पॉलीगॉन को क्लिपिंग विंडो के दाहिने edges, शीर्ष edges, निचले edges के clip against करने के लिए किया जाता है।
क्लिपिंग विंडो के साथ polygon के edges को processed करते समय, एक intersection point पाया जाता है यदि edges पूरी तरह से क्लिपिंग विंडो के अंदर नहीं है और चौराहे बिंदु से बाहरी edges तक partial edges को क्लिप किया जाता है। statistics बाएँ, दाएँ, ऊपर और नीचे edges की clippings को दिखाते हैं -
Sutherland-Hodgman Polygon Clipping Algorithm:-
Step-1:- polygon के सभी vertices के index पढ़ें।
Step-2:- क्लिपिंग विंडो के index पढ़ें।
Step-3:- Window के बाएं edges पर विचार करें।
Step-4:- क्लिपिंग प्लेन के साथ individual रूप से polygon के प्रत्येक edges के कोने की तुलना करें।
Step-5:- edges और clipping range के बीच 4 संभावित relationships के अनुसार resulting intersection और कोने को कोने की नई सूची में सहेजें।
Step-6:- यदि edges का पहला top window की boundary के बाहर है और किनारे का दूसरा top अंदर है, तो, windows की boundary के साथ polygon edge का intersection point और दूसरा top output top list में जोड़ा जाता है।
Step-7:- यदि edges के दोनों कोने विंडो की boundary के अंदर हैं, तो आउटपुट वर्टेक्स सूची में केवल दूसरा वर्टेक्स जोड़ा जाता है।
Step-8:- यदि edges का पहला top window की boundary के अंदर है और edges का top बाहर है, तो, Window की boundary के साथ केवल edges का intersection output vertex list में जोड़ा जाता है।
Step-9:- यदि edges के दोनों कोने विंडो की boundary से बाहर हैं, तो आउटपुट वर्टेक्स सूची में कुछ भी नहीं जोड़ा जाता है।
Step-10:- क्लिपिंग विंडो के remaining edges के लिए चरण 4 से 5 दोहराएं। क्लिपिंग विंडो के अगले किनारे को processed करने के लिए successive each time रूप से resulting list पास करें।
टिप्पणियाँ
एक टिप्पणी भेजें