मैं सिमुलेशन सॉफ्टवेयर का एक टुकड़ा लिख रहा हूं, और एक लाइन के साथ टक्कर के परीक्षण के लिए एक कुशल तरीका की आवश्यकता है।एक-आयामी टकराव का पता लगाने के लिए सबसे अच्छा तरीका क्या है?
सिमुलेशन एक ट्रैक पर कई स्विच पार करने वाली ट्रेन का है। जब एक पहिया स्विच के एन इंच के भीतर आता है, तो स्विच चालू हो जाता है, फिर पहिया छोड़ने पर बंद हो जाता है। चूंकि सभी पहियों एक ही आकार के होते हैं, और सभी स्विच एक ही आकार के होते हैं, मैं ट्रैक के साथ एक समन्वय एक्स के रूप में उनका प्रतिनिधित्व कर सकता हूं। एक बार सेट करने के बाद स्विच दूरी और पहिया दूरी एक-दूसरे के संबंध में नहीं बदलती हैं।
सूचियों में एक्स निर्देशांक रखकर और उन्हें घुमाकर ब्रूट फोर्स के माध्यम से किया जाने पर यह काफी मामूली समस्या है, लेकिन मुझे इतना कुशलता से करने का एक तरीका चाहिए, क्योंकि यह बेहद सटीक होना चाहिए, भले ही ट्रेन उच्च गति पर चल रहा है। 2 डी टक्कर पहचान पर ट्यूटोरियल का एक टन है, लेकिन मुझे यकीन नहीं है कि इस अद्वितीय 1 डी परिदृश्य के बारे में जाने का सबसे अच्छा तरीका है।
जाहिर है कि मेरा डेटा कैसा दिखता है इसके बारे में कुछ भ्रम है।
मैं एक ही साइट का अनुकरण कर रहा हूं, पूरे क्षेत्र में नहीं। ट्रेनें विभिन्न प्रकार की कारों के साथ किसी भी लंबाई की हो सकती हैं, लेकिन केवल एक ही ट्रेन है। मेरा ट्रेन डेटा {48,96,508,556,626,674,...}
रूप में है, जो रेल के सामने (0
) से धुरी के केंद्र में दूरी दर्शाता है।
(ट्रेन डेटा अधिक होने की संभावनाCar
वस्तुओं, जिनमें से प्रत्येक लंबाई और कहा कि कार के सामने से धुरा दूरी का प्रतिनिधित्व पूर्णांकों की एक सूची है की एक आदेश दिया सूची के रूप में मेरे पास आते हैं, लेकिन यह सभी एक ही सूची में एकत्र हो जाते हैं, क्योंकि सभी धुरी मेरे लिए समान हैं।)
मेरे स्विच सभी सौ फुट के भीतर हैं, और अक्सर पूरी तरह से ट्रेन द्वारा कवर किया जाएगा, स्विच किसी भी अंतराल पर हो सकते हैं सैकड़ों फीट कई इंच अलग हैं, और ट्रेन के समान रूप में हैं: {0,8,512,520,...}
, साइट की शुरुआत से दूरी को स्विट के केंद्र में इंगित करता है एच।
अंत में, मुझे पता है कि पहिया इंच में स्विच को सक्रिय करता है।
उदाहरण के लिए, उपर्युक्त नमूना डेटा और 8 इंच की सक्रियण दूरी का उपयोग करते हुए, एक्स = 0 पर पहला स्विच सक्रिय होगा जब ट्रेन एक्स = 40 हिट करेगी, जिसका अर्थ है कि ट्रेन साइट पर 40 इंच है। जब ट्रेन एक्स = 48 हिट करती है, एक्स = 8 पर स्विच भी सक्रिय होता है। एक्स = 56 पर, पहला स्विच बंद हो जाता है, और एक्स = 64 पर, दूसरा स्विच भी बंद हो जाता है। अलग-अलग धुरी साइट को पार करते समय अलग-अलग स्विच चालू और बंद कर रहे हैं।
ट्रेन आमतौर पर 10 मील प्रति घंटे की रफ्तार से चल रही है, लेकिन बहुत अधिक जा सकती है। (अभी हमारे सिमुलेशन 30 मील प्रति घंटे तक ही सीमित कर रहा है, लेकिन उच्च बहुत अच्छा होगा।)
हम्म ... स्पष्ट (मेरे लिए) जवाब एक 2 डी समाधान लेते हैं और इसे अनुकूलित करने के लिए है - सबसे आसान तरीका है हमेशा के लिए एक आयाम स्थिर हो (सब कुछ का एक y- निर्देशांक है 0)। क्या कोई कारण है कि उन समाधानों को आसानी से अनुकूलित नहीं किया जा सकता है? – FrustratedWithFormsDesigner
तो आपका डेटा सेट कैसा दिखता है? क्या आपके पास बस स्थान हैं (एक बिंदु से पूर्ण दूरी) या क्या आपके पास कुछ ऐसा है जिसके खिलाफ आप मुखौटा कर सकते हैं? –
मैंने ऊपर कुछ नमूना डेटा जोड़ा है। आपका क्या मतलब है "मुखौटा के खिलाफ?" मैं किसी सूची से किसी अन्य संरचना में डेटा को परिवर्तित कर सकता हूं। – dlras2