मैं रूपांतरण मैट्रिक्स के प्रभाव को कैसे उलट सकता हूं?


14

मैं हाल ही में GLFW के माध्यम से OpenGL और C ++ का उपयोग करके एक गेम पर काम कर रहा हूं।

खेल में मेरे पास एक बुर्ज है, जिस पर एक बुर्ज लगा है। एयरशिप दुनिया के अंतरिक्ष निर्देशांक में घूमती है और बुर्ज उसका 'अनुसरण' करती है।

बुर्ज का अपना लुक / लक्ष्य दिशा के लिए खुद का समन्वय स्थान है। मूल रूप से, जब बुर्ज दिशा में लक्ष्य करता है (0,0,1), तो इसका लक्ष्य आंदोलन की वायु की दिशा के समानांतर होता है।

बुर्ज को विश्व अंतरिक्ष लक्ष्य देने के लिए, मेरे पास एक मैट्रिक्स है जो विश्व अंतरिक्ष निर्देशांक लेता है और इन्हें बुर्ज अंतरिक्ष निर्देशांक में बदल देता है।

जैसा कि बुर्ज फायर करता है, मैं चाहता हूं कि यह विश्व अंतरिक्ष में प्रोजेक्टाइल को स्पॉन करे, इसलिए क्या बुर्ज अंतरिक्ष निर्देशांक को विश्व अंतरिक्ष में बदलने के लिए मेरे परिवर्तन मैट्रिक्स का उपयोग करने का एक सुंदर तरीका है?

सवाल पूछने का एक और सामान्य तरीका हो सकता है: अगर मेरे पास एक मैट्रिक्स है Mजो अंतरिक्ष से अंतरिक्ष में निर्देशांक लेता Aहै BMनिर्देशांक प्राप्त करने के लिए उपयोग करने का एक आसान तरीका Bहै A?

जवाबों:


19

इतने लंबे समय के रूप में मैट्रिक्स Mहै उलटी (जो यह आम तौर पर, हो जाएगा जब तक आप बहुत ही असामान्य कुछ कर रहे), तो कंप्यूटिंग मैट्रिक्स उलटा की Mआप एक मैट्रिक्स दे देंगे करता है कि आप क्या चाहते हैं।

यही है, अगर Mकुछ परिवर्तन करता है, तो inverse(M)"विपरीत" परिवर्तन करता है।

अधिकांश मैट्रिक्स / वेक्टर लाइब्रेरी उलटा कंप्यूटिंग के लिए एक साधन प्रदान करते हैं।


1
बोनस प्रश्न (जैसा कि आप एक व्यक्ति की तरह प्रतीत होते हैं जो उत्तर जानते हैं): क्या कोई गैर-परिवर्तनीय परिवर्तन मैट्रिस नेत्रहीन दिलचस्प परिणाम देगा?
user1306322

6
@ user1306322 हो सकता है। निम्न आयाम में प्रोजेक्ट करना (उदा। शून्य सभी X मान) एक गैर-परिवर्तनशील परिवर्तन होगा, क्योंकि आप मानों को निकाल रहे हैं। यह इस मायने में दिलचस्प है कि यह उपयोगी है, लेकिन ऐसा नहीं है कि आपको फंकी परिणाम मिलेंगे। "इन्वर्टिबिलिटी" और "नेत्रहीन दिलचस्प" ऑर्थोगोनल हैं।
कॉंगसबोंगस

@ कोन्गुसबोंगस नोप! 3 डी से 2 डी तक की प्रोजेक्शन प्लानर रिसीवर्स पर ड्रॉप शैडो प्राप्त करने के लिए एक मानक हैक है।
imallett


5

यदि आपका परिवर्तन मैट्रिक्स एक घूर्णन मैट्रिक्स है, तो आप इस तथ्य का लाभ उठाकर समस्या को सरल कर सकते हैं कि रोटेशन मैट्रिक्स का व्युत्क्रम उस मैट्रिक्स का संक्रमण है।

यदि आपका ट्रांसफ़ॉर्मेशन मैट्रिक्स अनुवाद के बाद एक रोटेशन का प्रतिनिधित्व करता है, तो घटकों को अलग से समझो। उलटा अनुवाद को घटाने और फिर रोटेशन मैट्रिक्स के स्थानान्तरण को लागू करने के बराबर है।


2

आपके मैट्रिक्स लिब में संभवतः एक फ़ंक्शन होता है जिसे व्युत्क्रम कहा जाता है। शायद यही वह चीज है जिसकी आपको तलाश है।

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