2011-09-05 16 views
6

नीचे दी गई छवि में आप (1) त्रिकोण और एक सर्कल में देखते हैं। उस त्रिभुज में एक समर्पित बिंदु एक्स को देखते हुए मैं इस बिंदु से दिखाई देने वाली हर चीज को क्लिप नहीं करना चाहता हूं। (2) में एक साधारण बहुभुज अंतर एल्गोरिदम के साथ केवल सर्कल को हटाने में कोई समस्या नहीं है। लेकिन (3) में बहुभुज प्राप्त करने के लिए मैं किस प्रकार का एल्गोरिदम उपयोग कर सकता हूं?पॉलीगॉन क्लिपिंग: केवल "देखने योग्य" क्षेत्र

पॉलीगॉन हमेशा सरल होता है।

संपादित करें: सर्कल सिर्फ एक उदाहरण है। हर साधारण बहुभुज संभव होना चाहिए।

Image #1

आप कर सकते हैं छवि खेल की छवि पर एक नज़र लेने के द्वारा मेरी जरूरतों "कमांडो - दुश्मन लाइनों के पीछे": डी के लिए

Image #2

+0

+1, कमांडो। उत्कृष्ट खेल। –

+0

यदि आपको कोई जवाब नहीं मिलता है, तो आप एक उपहार प्रदान कर सकते हैं। –

+0

आपका प्रश्न http://stackoverflow.com/q/5892539/359538 –

उत्तर

3

यह मूल विचार है।

मुझे कुछ और सामान्य समस्याएं आ रही हैं, लेकिन यह आपकी समस्या को अनुकूलित करने में बहुत आसान होगी: plan को सभी आकार, एक बिंदु और ज्यामितीय आकारों का एक सेट, हम चाहते हैं उस बिंदु से उस क्षेत्र से दिखाई देने वाली योजना से हटा दें।

हम क्या करना चाहते हैं, प्रत्येक आकार के लिए, यह starting_polar और ending_polar अंक है, जो कि आकार से संबंधित न्यूनतम और अधिकतम ध्रुवीय कोण के साथ 2 अंक हैं। 2 सीधी रेखाएं (x, starting_polar) और (x, ending_polar) और plan की सीमाओं के बीच चौराहों starting_polar, ending_polar, और:

अब हम plan से आकार निकाल देंगे और हम quadrilateral अंक द्वारा गठित निकाल देंगे।

आपके मामले में यह योजना केवल triangle होगी।

+0

ध्वनि वादा करने वाला मैं इसे आज़मा दूंगा। – tur1ng

+0

यह उत्तल आकार के लिए निश्चित रूप से काम करेगा; लेकिन मुझे लगता है कि यदि एक आकार अवतल है और आप इसे उत्तल उपशीर्षक में विभाजित कर सकते हैं तो यह आकार के सभी उप-समूहों के लिए इसे दोहराएगा – Simone

0

सी समानांतर, एक करने के लिए जी समानांतर , एफ के समानांतर बी, डी व्यास है।

Polygon

+0

क्षमा करें, लेकिन मैं यह उल्लेख करना भूल गया कि सर्कल सिर्फ एक उदाहरण है। हर साधारण बहुभुज संभव होना चाहिए। – tur1ng

+0

नहीं, वैसे भी सिमोन उत्तर किसी भी मामले के लिए बेहतर समाधान प्रदान करता है :) – HRgiger

+0

किसी भी मामले में जिसमें उत्तल में आकार ..if अवतल है, यह हमेशा पूरी तरह से काम नहीं करता है ... लेकिन मुझे संदेह है कि अगर हम प्रत्येक अवतल आकार को उप-विभाजित कर सकते हैं उत्तल आकार में समस्या को अवतल आकार के लिए हल करने योग्य भी है – Simone

संबंधित मुद्दे