2010-02-04 18 views
7

मैट्रिस और यूलर कोण गिंबल लॉक से पीड़ित हो सकते हैं लेकिन दूसरे पर एक का उपयोग करने के लिए कुछ अन्य तर्क क्या हैं?रोटेशन प्रतिनिधित्व के लिए Matrices, Euler Angles, या Quaternions का उपयोग करने के पेशेवर और विपक्ष क्या हैं?

आपको क्या लगता है कि डायरेक्टएक्स का समर्थन है?

दैनिक सी ++/सी/डायरेक्टएक्स प्रोग्रामिंग में आप क्या उपयोग करते हैं?

+0

प्रोग्रामिंग से संबंधित प्रोग्रामिंग –

+0

जेस्ट्रो: यहां पढ़ना: http://en.wikipedia.org/wiki/Gimbal_lock ऐसा लगता है कि निर्णय quaternions का उपयोग करना है ।लेकिन मेरे पास कोई प्रत्यक्ष (पन इरादा) अनुभव नहीं है। –

+2

@ मिच: यह निश्चित रूप से प्रोग्रामिंग से संबंधित है, जो भी 3 डी ग्राफिक्स के साथ काम करता है, इन चीजों के साथ दैनिक आधार पर –

उत्तर

12

यूलर कोणों को केवल मैट्रिक्स (या तीन, लेकिन यह अत्यधिक लगता है) को संग्रहीत करने के विपरीत तीन पैरामीटर की आवश्यकता होती है। जब आप यूलर रोटेशन लागू करते हैं, तो आप परिवर्तन को बनाने के लिए संभवतः तीन मैट्रिक्स गुणाओं के समतुल्य कुछ के साथ समाप्त हो जाएंगे। यदि आप केवल मैट्रिक्स का उपयोग कर रहे थे, तो हो सकता है कि आपको ऐसी महंगी लागत न हो (मैट्रिक्स का निर्माण कैसे किया गया था)। जिम्बल लॉक के अलावा, रोटेशन के मैट्रिक्स प्रस्तुतियों को इंटरपोल करते समय रद्दीकरण प्रभावों में भी एक समस्या है जिसे आपको सावधान रहने की आवश्यकता है।

आप quaternions पर विचार करना चाह सकते हैं। उन्हें भंडारण के चार पैरामीटर की आवश्यकता होती है, इसलिए वे बहुत भारी नहीं होते हैं। वे जिम्बल लॉक से बचते हैं और चिकनी घूर्णन को प्रस्तुत करने के लिए इंटरपोलेट किया जा सकता है। एक बात जिसे quaternion के लिए नकारात्मक पक्ष के रूप में व्याख्या किया जा सकता है यह है कि वे कुछ के लिए बहुत सहज नहीं हो सकते हैं। मैट्रिक्स ट्रांसफॉर्मेशन और यूलर कोणों में एक प्रकार का रोल-यॉ-पिच या स्पिन-प्रेसीशन-नेशन है जो बहुत सहज है। Quaternions इस तरह से या इस तरह से चिपकने वाले कुछ अंत परिणाम धुरी के बारे में एक घूर्णन के समान हैं।

ऐसे मामले हैं जहां कोई दूसरों पर एक विधि पसंद करेगा, इसलिए ये निर्णय लेने पर विचार करने के लिए कुछ चीजें हैं।

+1

+1। इंटरपोलेशन और जिम्बल लॉक को हल करना यही कारण है कि मैं quaternions पसंद करेंगे। लेकिन तथ्य यह है कि ज्यादातर लोग Matrices का उपयोग करने लगते हैं अपने फायदे हैं। –

+0

मुझे लगता है कि यह ध्यान दिया जाना चाहिए कि Matrices जिम्बल लॉक में नहीं जा सकते हैं (वे दिशा निर्देश, घूर्णन नहीं)। – Cygon

0

यह वास्तव में डायरेक्टएक्स से संबंधित नहीं है। आप या तो विधि का उपयोग कर सकते हैं, लेकिन तर्कसंगत quaternions एनीमेशन डेटा के साथ सौदा आसान है। अन्यथा आपके पास इसका निपटारा करने का एक मानक तरीका नहीं है और इसलिए कार्यक्रमों में डेटा की व्याख्या करना मुश्किल हो जाता है।

0

Quaternions मास्टर के लिए सबसे कठिन हैं, लेकिन एक बार जब आप समझते हैं कि वे आपके बारे में क्या हैं तो उन्हें उपयोग करने में आश्चर्यजनक रूप से आसान लगेगा। मैं उन्हें एक बेहतर समाधान मानता हूं तो यूलर एंगल्स/मैट्रिक्स बदलता है क्योंकि वे किसी समस्या से निपटते हैं जो अन्य 2 समाधान नहीं करते हैं। "गिमबॉल लॉक"।

+0

क्वाटरनियंस की रिडीमिंग संपत्ति के रूप में "गिंबल लॉक" का उल्लेख करते हुए एक और पोस्ट। यह यूलर Angles के साथ केवल एक समस्या है, न तो matrices या quaternions अतिसंवेदनशील हैं। – Cygon

4

यूलर कोण एकवचन से ग्रस्त हैं और साथ काम करना मुश्किल है। मैट्रिक्स प्रस्तुतिकरण इस समस्या को यहां कई उत्तरों के विपरीत नहीं है। अभिविन्यास का एक मैट्रिक्स प्रतिनिधित्व संचित त्रुटियों से पीड़ित हो सकता है क्योंकि आप उस चीज़ के लिए 9 संख्याओं का उपयोग कर रहे हैं जिसमें केवल 3 डिग्री स्वतंत्रता है। Quaternions गणितीय रूप से बहुत दिलचस्प हैं, लेकिन दिन के अंत में वे वास्तव में एक 4x4 मैट्रिक्स गुणा कर रहे हैं।

एक quaternion को 3vec के रूप में भी देखा जा सकता है जो एक रोटेशन धुरी का प्रतिनिधित्व करता है और इसकी लंबाई उस अक्ष के बारे में घूर्णन के कोण से संबंधित है (पाप वर्ग?)। चौथा पैरामीटर 4 के बराबर 4vec की लंबाई बनाने के लिए गणना की जाती है। यह व्याख्या समकक्ष अभिविन्यास मैट्रिक्स में परिवर्तित की जा सकती है।

मैट्रिक्स प्रतिनिधित्व में स्केलिंग जानकारी शामिल हो सकती है, और स्थिति जानकारी के साथ-साथ अभिविन्यास को शामिल करने के लिए 4x4 तक बढ़ाया जा सकता है। आप मैट्रिक्स ट्रांसफॉर्म का उपयोग करके दोनों स्थिति और दिशा वैक्टर बदल सकते हैं जो अन्य दो का उपयोग करके संभव नहीं है।

आप 4x4 मैट्रिक्स के साथ बहुत ही आसानी से सामान की अविश्वसनीय मात्रा कर सकते हैं। Quaternions और यूलर कोण सिर्फ उन्मुखीकरण करते हैं। हाँ, बस एक ही बात है। मुझे लगता है कि इस मुद्दे पर मेरी वरीयता/पूर्वाग्रह स्पष्ट है :-)

+0

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