2010-10-19 2 views
8

क्या किसी को भी सरल पता है कि दो बहुभुज, विशेष रूप से आयताकार, टकराव कर रहे हैं या नहीं? मुझे यह देखने का एक आसान तरीका मिला कि क्या दो जांच कर रहे हैं कि दो आयताकारों पर कोई भी रेखा टकरा रही है या नहीं, लेकिन यदि कोई बहुभुज दूसरे में होता है तो यह काम नहीं करेगा। क्या किसी को ऐसा करने का एक और अधिक प्रभावी तरीका पता है या सिर्फ एक तरीका है जो काम करता है?2 डी पॉलीगॉन टकराव का पता लगाने

इसके अलावा, क्या कोई मुझे इसके लिए एक सूत्र बना सकता है या ऐसा कुछ और न केवल इस विषय पर आपके विचार।

धन्यवाद

+0

क्या आयत के किनारे एक्स- और वाई-अक्ष के साथ गठबंधन हैं? बीटीडब्लू, एक संबंधित प्रश्न देखें: http://stackoverflow.com/questions/3851520/basic-2d-collision-detection – Arun

उत्तर

12

पृथक एक्सिस प्रमेय देखें। एक ट्यूटोरियल here है।

यह त्वरित, सुरुचिपूर्ण, मजबूत, बहुत कठिन नहीं है, और इसमें बहुत सारे संसाधन हैं।

+0

हां .. मुझे वह ट्यूटोरियल याद है .. यह अच्छा है, और इसमें बहुत खूबसूरत तस्वीरें हैं, लेकिन मैंने कभी नहीं इससे कुछ भी उपयोगी बनाने में कामयाब रहे। – mpen

+0

तब समझने के लिए कड़ी मेहनत करें। –

+1

अगर आयताकार के साथ काम करता है, लेकिन अलग-अलग एक्सिस प्रमेय कभी नहीं भूलें उत्तल बहुभुज के लिए केवल – Madlozoz

0

कई विधियां हैं, सरल यह जांचना है कि एक्स या वाई सीमाओं में क्या है और ओवरलैप है या नहीं। हालांकि यह अक्ष के साथ गठबंधन आयताकारों के साथ ही काम करता है।

सीमाओं की जांच है, एक वस्तु का कोना दूसरे के निर्देशांक की सीमाओं के साथ है।

वहां से टक्कर का पता लगाना अधिक उन्नत हो जाता है। यह देखने के लिए जांच कर रहे हैं कि कोई लाइन कोई है जो किसी भी दिशा में और उसके बीच आकर्षित हो सकती है।

+0

है, वैसे, मैंने जिस अंतिम विधि का उल्लेख किया है वह धुरी प्रमेय को अलग कर रहा है। जो भी उपयोग करता है उस पर निर्भर करता है कि वास्तव में क्या जरूरत है। – ewanm89

-3

उदाहरण:

आयत एक

वाम, शीर्ष कोने (एक्स, वाई)। चौड़ाई ऊंचाई।

आयत बी

वाम, शीर्ष कोने (x1, y1)।

स्थिति

(एक्स> = x 1) और (x < = x 1 + चौड़ाई) => एक्स अक्ष के लिए टक्कर। Y अक्ष के लिए यह वही है लेकिन y और y1 और ऊंचाई के साथ।

5

चेक बाहर http://www.metanetsoftware.com/technique/tutorialA.html

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

1) बाउंडिंग बॉक्स: आयताकार आकार और बूट करने के लिए त्वरित के लिए अच्छा है। आपको केवल इतना पता होना चाहिए कि ऑब्जेक्ट की एक्स (वाई, वाई) स्थिति के साथ-साथ इसकी चौड़ाई और ऊंचाई भी है।

2) एक्सिस प्रमेय (एसएटी) को अलग करना: अधिक जटिल आकारों को संभालने में सक्षम होना और काफी सहज ज्ञान युक्त है।

3) वोरोनोई क्षेत्र (वीआर) के साथ एसएटी: कम्प्यूटेशंस की कुल संख्या को कम करने के लिए किसी भी दिए गए बहुभुज के कशेरुक के बारे में जानकारी का उपयोग करता है।

उपरोक्त सभी उपरोक्त लिंक में गहराई से समझाया गया है। यह ध्यान दिया जाना चाहिए कि, इस प्रकार, उल्लिखित विधियां उत्तल बहुभुज के लिए सबसे प्रभावी हैं।यदि आप सटीकता के बेतुका स्तरों में जाना चाहते हैं, तो आप बिटमैप परीक्षण जैसी चीजों में आगे बढ़ना शुरू करते हैं जो लगभग धीमी गति से धीमी होती है और आम तौर पर लगभग किसी भी चीज़ के लिए अधिक होती है।