Line Clipping :-
हम लाइन क्लिपिंग एल्गोरिदम पर बात करते हैं जो ज्यादातर सीधी रेखाओं या लाइन सेगमेंट को क्लिप करने के लिए उपयोग किया जाता है। प्रमुख लाइन क्लिपिंग एल्गोरिदम हैं-
i. Cohen-Sutherland Algorithm
ii. Liang-Barsky Algorithm
iii. Nicholl-Lee Nicholl Algorithm
iv. Mid-Point Subdivision Algorithm
लाइनों और क्लिपिंग विंडो के बीच कई potential relationship हैं। एक लाइन क्लिपिंग विधि में कई भाग शामिल होती हैं।
एक line खींचते समय, यदि रेखा का एक endpoint screen के बाहर है, और दूसरा अंदर, तो आपको रेखा को क्लिप करना होगा ताकि स्क्रीन के अंदर का केवल वह भाग ही रह जाए। यहां तक कि अगर दोनों एंडपॉइंट स्क्रीन के बाहर हैं, तब भी यह संभव है कि लाइन का एक हिस्सा दिखाई दे। क्लिपिंग एल्गोरिथम को उन rows के नए end point खोजने की आवश्यकता होती है जो स्क्रीन के अंदर या किनारों पर हैं। यहाँ कुछ case दिए गए हैं, जहाँ Black rectangle screen का representation करता है, लाल रंग में पुराने end point हैं, और नीले रंग में क्लिपिंग के बाद:
Case-A: दोनों एंडपॉइंट स्क्रीन के अंदर हैं, क्लिपिंग की जरूरत नहीं है।
Case-B: स्क्रीन के बाहर एक एंडपॉइंट, जिसे क्लिप किया जाना था।
Case-C: दोनों एंडपॉइंट स्क्रीन के बाहर हैं, और लाइन का कोई हिस्सा दिखाई नहीं दे रहा है, इसे बिल्कुल भी न बनाएं।
Case-D: दोनों एंडपॉइंट्स स्क्रीन के बाहर हैं, और लाइन का हिस्सा दिखाई दे रहा है, दोनों एंडपॉइंट्स को क्लिप करें और इसे ड्रा करें।
कई अलग-अलग case हैं, प्रत्येक endpoint screen के अंदर, उसके बाईं ओर, उसके दाईं ओर, ऊपर, नीचे, आदि हो सकता है। Cohen Sutherland Clipping Algorithm इन case को काफी कुशलता से पहचान सकता है और क्लिपिंग कर सकता है।
(i) Cohen-Sutherland Line Clipping Algorithm:-
यह ज्यादातर सबसे लोकप्रिय और सबसे पुरानी लाइन क्लिपिंग एल्गोरिदम का उपयोग किया जाता है। यह preliminary test की concepts का उपयोग करता है जो क्लिपिंग की प्रक्रिया को गति देता है। Algorithm Space (Window) area को नौ areas में विभाजित करता है। center field screen (window) है, और अन्य आठ area windows के बाहर अलग-अलग तरफ हैं। प्रत्येक Line के end point को चार अंकों का बाइनरी कोड दिया जाता है, जिसे area code कहा जाता है।
- यदि area screen के ऊपर है, तो पहला बिट 1 है।
- यदि area screen के नीचे है, तो दूसरा बिट 1 है।
- यदि area screen के दाईं ओर है, तो तीसरा बिट 1 है।
- यदि area screen के बाईं ओर है, तो चौथा बिट 1 है।
एक area एक ही समय में बाईं और दाईं ओर नहीं हो सकता है, या एक ही समय में इसके ऊपर और नीचे हो सकता है, इसलिए तीसरा और चौथा बिट एक साथ नहीं हो सकता है, और पहला और दूसरा बिट 'हो सकता है' मैं साथ नहीं रहूंगा। स्क्रीन में ही सभी 4 बिट्स 0 पर सेट हैं।
(ii) Liang-Barsky Algorithm:-
यह लाइन क्लिपिंग एल्गोरिदम वर्ष 1984 में पेश किया गया था जो साइरस और बेक के काम का विस्तार है। यह कोहेन सदरलैंड एल्गोरिथम की तुलना में तेज़ एल्गोरिथम है। यह एल्गोरिथ्म एक रेखा के पैरामीट्रिक रूप पर base है।
टिप्पणियाँ
एक टिप्पणी भेजें