मेरे पास स्थिर वस्तुएं और चल वस्तुएँ हैं। टकराव का पता लगाने के लिए अलग-अक्ष-प्रमेय का उपयोग किया जाता है।
उदाहरण के लिए, इस स्थिति में मेरे पास दो स्थिर वस्तुएँ हैं (लाल रंग में):
और दोनों के बीच एक चल वस्तु:
मेरा एल्गोरिथ्म इन वस्तुओं में से दो के बीच टकराव की गणना करने में सक्षम है, और यह टक्कर के लिए एक पूर्ण रिज़ॉल्यूशन वेक्टर (जिसका अर्थ न्यूनतम-विस्थापन-वेक्टर) भी है।
उदाहरण के लिए, जब मैं हरे रंग की आयत और दाहिने लाल आयत के बीच टकराव की जाँच करता हूँ, तो एल्गोरिथ्म एक वेक्टर निकालता है जो मुझे बताता है कि कैसे टकराव को हल करने के लिए मुझे हरे आयत को स्थानांतरित करने की आवश्यकता है:
ध्यान दें कि मैंने इसे जल्दी ही MSPaint में आकर्षित किया है, इसलिए उस चित्र में वास्तव में यह हो सकता है कि न्यूनतम-अनुवाद-वेक्टर शीर्ष पर हरे आयत को बाहर धकेलता है, लेकिन मैं यहां यह मानने जा रहा हूं कि इसे बाईं ओर धकेलना / अधिकार वास्तव में कम है।
इसके समीप आने का सामान्य तरीका केवल एक बार में एक के बजाय एक फ्रेम प्रति टकराव के टकराने को हल करना होगा। लेकिन मेरे मामले में, इसका परिणाम फ्लिप-फ्लॉपिंग होगा:
सबसे पहले, सॉल्वर दो टकरावों का पता लगाता है लेकिन केवल सही आयत और हरे रंग की आयत के बीच टकराव को हल करता है:
फिर, अगले फ्रेम में, यह केवल एक टकराव का पता लगाता है जो कि बाएं लाल आयत और हरे रंग की आयत के बीच में है, और इसे हल करता है:
जैसा कि आप देख सकते हैं, यह वास्तव में टकराव को हल नहीं करता है (उदाहरण के लिए हरे रंग की आयत को शीर्ष पर धकेलकर), और इसके बजाय दोनों राज्यों के बीच फ़्लिप को अनंत रूप से फ्लिप करें।
इसे कैसे हल किया जा सकता है?