SAT का उपयोग करके यौगिक आकृतियों के टकराव को कैसे हल किया जाए?


16

SAT मनमाने ढंग से उत्तल बहुभुज के बीच टकराव को निर्धारित करने का एक सभ्य तरीका है। तुम भी सदिश मिल जाएगा कि एक टकराव को हल करने के लिए आवश्यक है।

जटिल (गैर-उत्तल) आकृतियों के बीच टकराव को हल करने के लिए, मैं कुछ प्रकार के यौगिक-आकार के बारे में सोच रहा था जिसमें कई उत्तल बहुभुज शामिल हैं। यदि व्यापक-चरण (जैसे। सर्कल बनाम सर्कल या एएबीबी बनाम एएबीबी) में टकराव होता है, तो टकराव को प्रत्येक यौगिक में प्रत्येक बहुभुज की जांच करके और दूसरे यौगिक आकार में प्रत्येक बहुभुज से हल किया जाएगा।

मुझे आश्चर्य है कि वास्तव में वस्तुओं को अलग करने का सबसे अच्छा तरीका क्या है? एक भोली दृष्टिकोण सबसे अधिक परिमाण के साथ वेक्टर को ले जाएगा और जुदाई के लिए उपयोग करेगा। निम्नलिखित तस्वीर में, यह वी 2 होगा

सैट उदाहरण 1

हालांकि अगर अलग-अलग वैक्टर अलग-अलग दिशाओं में इंगित करते हैं, तो टकराव को तुरंत हल नहीं किया जा सकता है और इसके लिए कई पुनरावृत्तियों की आवश्यकता हो सकती है। तो अगली तस्वीर में हम वी 1 और वी 2 द्वारा एक और पुनरावृत्ति (या वी 2 के करीब कुछ और) का उपयोग करके अलग कर देंगे , क्योंकि आकार वी 1 की मात्रा से स्थानांतरित हो जाएगा )।

सैट उदाहरण 2

यह दृष्टिकोण वैक्टर को अलग करने में विफल होगा जो एक दूसरे के विपरीत दिशा में या एक मामले में निम्न चित्र में दिखाए गए हैं:

SAT उदाहरण 3

यहां हम बाईं ओर स्थित राज्य और दाईं ओर स्थित राज्य के बीच अंतहीन यात्रा करेंगे।

तो यहां एक वास्तविक प्रश्न पूछना है: इस समस्या के लिए एक उचित दृष्टिकोण क्या है? मुझे लगता है कि जटिल आकृतियों के लिए मिश्रित बहुभुजों का उपयोग करना एक उचित विचार है लेकिन मुझे वास्तव में आश्चर्य है कि टकराव को उस स्थिति में कैसे हल किया जाना चाहिए? तीसरी छवि में दिखाए अनुसार मैं एक मृत-अंत का पता कैसे लगाऊं?


क्या आप स्पष्ट कर सकते हैं कि आप वेक्टर के लिए क्या उपयोग करना चाहते हैं?
विल

@Will टकराव को हल करने के लिए वेक्टर का उपयोग किया जाना चाहिए, ताकि आकार अब ओवरलैप न हो। इसलिए मैं परिणामी वेक्टर द्वारा पीली वस्तु को स्थानांतरित कर सकता हूं और दो वस्तुएं नहीं टकराएंगी।
बंमज़ैक

जवाबों:


7

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

यथार्थवाद

कोणीय आवेग और यह नॉक-ऑन प्रभाव यहां खेल का नाम है।

यथार्थवादी टकराव के समाधान के लिए संपर्क बिंदुओं का क्रम महत्वपूर्ण है। वास्तविक दुनिया में, उन बिंदुओं में से एक हमेशा दूसरे से पहले हड़ताल करने वाला है। और यह केवल उस संपर्क क्रम और प्रत्येक "उपवर्ग" के परिणामों का अनुकरण करने में है, जो कि आप अनुकरण में एक यथार्थवादी परिणाम प्राप्त करने की उम्मीद कर सकते हैं। यह बहुत ही कारणों में से एक है कि आप अपने अवतल को उत्तल में क्यों तोड़ रहे हैं, पहली जगह में - यह पता लगाने की अनुमति देता है कि पहले किस हिस्से में चोट लगी है। बेशक, यह "कम यथार्थवाद" शीर्षक के तहत मेरी टिप्पणी के अनुसार भी अनुकरण किया जा सकता है।

आपका उत्तल जुड़नार ऑब्जेक्ट को इसकी रूपरेखा और उसके केंद्रक दोनों को देने के लिए संयोजित करता है (और निश्चित रूप से अधिक जटिल सिमुलेशन में, प्रत्येक स्थिरता घनत्व को अलग-अलग, साथ ही प्रभावित कर सकती है)। इसका उल्लेख करने का कारण यह है कि वास्तविक रूप से टकरावों को हल करने में, आपको अपने संपर्क बिंदुओं के प्रत्येक "उप टक्कर" का अनुसरण करते हुए न केवल रैखिक बल्कि कोणीय आवेग की गणना करनी होगी। यह उतना आसान नहीं है जितना कि आप एसएटी के साथ लागू होने वाले मूल "पुश अप" के रूप में करते हैं।

यह तब आपकी समस्या की प्रकृति को पूरी तरह से बदल देता है, क्योंकि जैसा कि आप देख सकते हैं, यह 2 या अधिक संपर्क बिंदुओं का उपयोग करने की कोशिश कर रहा है , क्योंकि वास्तव में यह केवल पहला है जो मायने रखता है। एक बार जब आपने पहले रैखिक और कोणीय आवेग के संदर्भ में हल कर लिया है, तो आपको आगे के टकरावों के लिए पुनर्गणना करने की आवश्यकता होगी, क्योंकि प्रत्येक वस्तु के झुकाव बदल गए होंगे। इसके अलावा, चरण में प्रत्येक व्यक्तिगत संपर्क का पता लगाना, फिर उसी चरण के भीतर करने की आवश्यकता हो सकती है या नहीं - संपर्कों के बीच के समय के आधार पर वस्तुओं का पहला संपर्क बिंदु छूता है, बाद में रैखिक और कोणीय आवेग लागू होता है, दूसरा संपर्क बिंदु छूता है, और इसी तरह।

कम यथार्थवाद

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

आपके प्रश्न के उत्तर में EDIT

यदि आप एक सरलीकृत दृष्टिकोण चाहते हैं तो आपको क्या करने की आवश्यकता है:

  • विस्थापन की सही दिशा निर्धारित करें । यह सबसे आसानी से प्रत्येक को उत्तल करते हुए, और अलग-अलग अक्ष पर मानदंडों का निर्धारण करके किया जाता है।

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


मुझे लगता है कि मैं देख रहा हूं कि आपका क्या मतलब है। तो "कम यथार्थवाद" परिदृश्य में मैं व्यक्तिगत बहुभुज के लिए SAT द्वारा दिए गए (सबसे कम) वैक्टर का मूल्यांकन नहीं करूंगा, लेकिन मुझे दूसरे (बड़े) ओवरलैप्स पर भी विचार करना होगा, और सबसे खराब स्थिति में उत्तल पतवार का उपयोग करना होगा?
18

देखें (नवीनतम) संपादित करें।
इंजीनियर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.