कोटेशन का उपयोग घूर्णन के लिए क्यों किया जाता है?


107

मैं एक भौतिक विज्ञानी हूं, और कुछ प्रोग्रामिंग सीख रहा हूं, और मैट्रिक्स / वेक्टर रूप में चीजों को लिखने के बजाय रोटेशन के लिए quaternions का उपयोग करने वाले बहुत से लोग आए हैं।

भौतिकी में, बहुत अच्छे कारण हैं जो हम quaternions का उपयोग नहीं करते हैं (विचित्र कहानी के बावजूद जो कभी-कभी हैमिल्टन / गिब्स / आदि के बारे में बताया जाता है)। भौतिकी के लिए आवश्यक है कि हमारे विवरणों में अच्छा विश्लेषणात्मक व्यवहार हो (इसका ठीक-ठीक परिभाषित अर्थ है, लेकिन कुछ तकनीकी तरीकों से जो सामान्य इंट्रो कक्षाओं में पढ़ाया जाता है, उससे बहुत आगे निकल जाता है, इसलिए मैं किसी भी विस्तार में नहीं जाऊंगा)। यह पता चला है कि quaternions के पास यह अच्छा व्यवहार नहीं है, और इसलिए वे उपयोगी नहीं हैं, और वैक्टर / मैट्रिस करते हैं, इसलिए वे उनका उपयोग नहीं करते हैं।

हालांकि, कठोर घुमावों और विवरणों तक सीमित है जो किसी भी विश्लेषणात्मक संरचनाओं का उपयोग नहीं करते हैं, 3 डी घुमावों को समान रूप से (या कुछ अन्य तरीकों से) वर्णित किया जा सकता है।

आमतौर पर, हम बस एक नए बिंदु X '= (x, y, z) के एक बिंदु की मैपिंग चाहते हैं X "= (x', y ', z') बाधा के अधीन है कि X 2 = X ' 2 । और बहुत सी चीजें हैं जो ऐसा करती हैं।

भोला तरीका यह है कि त्रिकोण को परिभाषित करें और त्रिकोणमिति का उपयोग करें, या एक बिंदु (x, y, z) और एक वेक्टर (x, y, z) और फ़ंक्शन f (X) और 'x' के बीच समरूपता का उपयोग करें। एक मैट्रिक्स एमएक्स = एक्स ', या क्वाटर्न्स का उपयोग करना, या पुराने वेक्टर के घटकों को किसी अन्य विधि (एक्स, वाई, जेड) टी (ए, बी, सी) (एक्स', वाई ',) का उपयोग करके नए के साथ पेश करना । z '), आदि।

गणित के दृष्टिकोण से, ये विवरण इस सेटिंग में (एक प्रमेय के रूप में) सभी समान हैं। उन सभी के पास स्वतंत्रता की समान डिग्री, बाधाओं की समान संख्या आदि हैं।

तो क्यों quaternions वैक्टर पर पसंद करने लगते हैं?

मेरे द्वारा देखे जाने वाले सामान्य कारण कोई गिमबल लॉक या संख्यात्मक मुद्दे नहीं हैं।

कोई गिमबल लॉक तर्क अजीब नहीं लगता है, क्योंकि यह केवल यूलर एंगल्स की समस्या है। यह केवल एक समन्वित समस्या है (ध्रुवीय निर्देशांक में (r = 0 पर विलक्षणता की तरह) या दो अतिव्यापी समन्वय प्रणालियों का उपयोग करना।

मैं संख्यात्मक मुद्दों के बारे में कम निश्चित हूं, क्योंकि मुझे नहीं पता है कि इन दोनों (और किसी भी विकल्प) को कैसे लागू किया जाएगा। मैंने पढ़ा है कि एक घुमाव को फिर से सामान्य करना एक रोटेशन मैट्रिक्स के लिए करने से आसान है, लेकिन यह केवल सामान्य मैट्रिक्स के लिए सच है; एक रोटेशन में अतिरिक्त बाधाएं होती हैं जो इसे तुच्छ बनाती हैं (जो कि quaternions की परिभाषा में बनाई गई हैं) (वास्तव में, यह सच है क्योंकि उनके पास स्वतंत्रता की समान संख्या है)।

तो वैक्टरों या अन्य विकल्पों पर बटेरों के उपयोग का कारण क्या है?


2
"नो गिम्बल लॉक" चीज वैसे भी झूठ है। आपके पास समान गिम्बल लॉक समस्या है जो आपके पास यूलर एंगल्स के साथ है यदि आप एक चतुर्भुज के साथ दो ऑर्थोगोनल घुमाव का उपयोग करते हैं। आपके पास केवल एक घुमाव के लिए कोई समस्या नहीं है क्योंकि यह 1 ऑपरेशन है, न कि 3.
डेमन

2
@ डैमोन यह पूरी तरह सच नहीं है। देखें mathoverflow.net/a/95908/97344
plasmacel

जवाबों:


61

गिंबल लॉक एक कारण है, हालांकि जैसा कि आप कहते हैं कि यह केवल यूलर कोण के साथ एक समस्या है और आसानी से हल करने योग्य है। यूलर एंगल्स का उपयोग तब भी किया जाता है जब मेमोरी एक चिंता का विषय है क्योंकि आपको केवल 3 नंबर स्टोर करने की आवश्यकता होती है।

एक 3x3 रोटेशन मैट्रिक्स बनाम चतुर्भुज के लिए, चतुर्भुज का आकार (4 स्केलर्स बनाम 9) और गति में लाभ होता है (चतुर्भुज गुणन 3x3 मैट्रिक्स गुणन की तुलना में बहुत तेज है)।

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


लेकिन एक रोटेशन मैट्रिक्स में कई स्वतंत्र घटक नहीं हैं - यह विवश है। प्रतिनिधित्व की परवाह किए बिना तीन आयामों में तीन निर्देशांक द्वारा एक दो आयामी रोटेशन निर्दिष्ट किया जाता है। मेट्रिस में सामान्य रूप से अधिक घटक होते हैं क्योंकि वे घुमाव से अधिक कर सकते हैं। लेकिन घुमाव के मामले में अतिरिक्त घटक दूसरों के संदर्भ में निर्धारित होते हैं।
जेएमपी

1
@ जेएमपी: आप सही कह रहे हैं। बहुत सारे लोग मैट्रिक्स को "कंप्रेस" करते हैं ताकि आप केवल आवश्यकतानुसार अधिक से अधिक जानकारी संग्रहीत करें, लेकिन एक संकुचित मैट्रिक्स से निपटने के लिए अधिक कठिन है, इसलिए आप प्रदर्शन पर हार जाते हैं। यह स्मृति और प्रदर्शन में व्यापार के बारे में है।
पीटर एलेक्जेंडर

10
@JMP मानक मैट्रिक्स गुणन दिनचर्या को सभी 9 मूल्यों की आवश्यकता होती है, हालांकि। हालांकि उनमें से केवल 3 स्वतंत्र हैं, फिर भी जब आप वास्तव में गणित (यदि आप वास्तव में कंप्यूटर में मैट्रिक्स गुणा कर रहे हैं) करने के लिए जाते हैं, तो यह 9 नंबर की स्मृति के लायक है।
डेविड जेड

1
"चतुर्भुज गुणन 3x3 मैट्रिक्स गुणन की तुलना में बहुत तेज है" वास्तव में? क्वाटरनियन रोटेशन के लिए 24 ऐड / mul ऑपरेशंस (दो बार क्रॉस-प्रोडक्ट और सप्लीमेंट ऑपरेशंस के कारण) की आवश्यकता होती है, 3x3 मैट्रिक्स के लिए केवल 15 ऐड / mul ऑपरेशंस की आवश्यकता होती है।
मराट बुहारोव

पूरी तरह से 3 डी ओरिएंटेशन का प्रतिनिधित्व करने के लिए सिर्फ 2 वैक्टर (6 फ्लोट्स) का उपयोग कर सकते हैं, 3 डी वेक्टर सिर्फ एक क्रॉस दूर है। एक फायदा मैट्रीस का यह है कि वे पहले से ही एक ऐसे फॉर्म में हैं जो कई अनुप्रयोगों के लिए उपयोग करने के लिए तैयार है। यूलर और क्वैट्स दोनों को पैकिंग (मैट्रिक्स से) और अनपैकिंग (मैट्रिक्स में) की आवश्यकता होती है जो अतिरिक्त प्रसंस्करण की खपत करता है। यूलर और क्वैट्स कॉम्पैक्ट लॉन्ग्टर्म स्टोरेज के लिए उपयोगी हो सकते हैं।
user3015682

39

भौतिकी में, बहुत अच्छे कारण हैं जो हम quaternions का उपयोग नहीं करते हैं (विचित्र कहानी के बावजूद जो कभी-कभी हैमिल्टन / गिब्स / आदि के बारे में बताया जाता है)। भौतिकी के लिए आवश्यक है कि हमारे विवरणों में अच्छा विश्लेषणात्मक व्यवहार हो (इसका ठीक-ठीक परिभाषित अर्थ है, लेकिन कुछ तकनीकी तरीकों से जो सामान्य इंट्रो कक्षाओं में पढ़ाया जाता है, उससे बहुत आगे निकल जाता है, इसलिए मैं किसी भी विस्तार में नहीं जाऊंगा)। यह पता चला है कि quaternions के पास यह अच्छा व्यवहार नहीं है, और इसलिए वे उपयोगी नहीं हैं, और वैक्टर / मैट्रिस करते हैं, इसलिए वे उनका उपयोग नहीं करते हैं।

खैर, मैं एक भौतिक विज्ञानी भी हूं। और कुछ स्थितियाँ ऐसी हैं जहाँ चतुष्कोण बस चट्टान बन जाते हैं! उदाहरण के लिए गोलाकार हार्मोनिक्स। आपके पास दो परमाणु बिखर रहे हैं, एक इलेक्ट्रॉन का आदान-प्रदान: कक्षीय स्पिन स्थानांतरण क्या है? चतुष्कोणों के साथ यह सिर्फ गुणा है यानी SH आधार कार्यों के घातांक को चतुर्भुज के रूप में व्यक्त किया जाता है। (चतुर्भुज अंकन में लीजेंड्री पॉलिनॉमिअल मिलना हालांकि थोड़ा थकाऊ है)।

लेकिन मैं मानता हूं, वे एक सार्वभौमिक उपकरण नहीं हैं, और विशेष रूप से कठोर शरीर यांत्रिकी में वे उपयोग करने के लिए बहुत बोझिल होंगे। फिर भी बर्ट्रेंड रसेल को एक छात्र के सवाल का जवाब देने के लिए कि एक भौतिक विज्ञानी को कितना गणित जानने की जरूरत है: "जितना संभव हो उतना!"

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

चतुष्कोणों का उपयोग करने का एक और अच्छा दुष्प्रभाव यह है कि स्वाभाविक रूप से कोई भी परिवर्तन असाधारण है। संख्यात्मक राउंड-ऑफ त्रुटियों के कारण अनुवाद मैट्रिसेस के साथ प्रत्येक को एनीमेशन चरणों के प्रत्येक जोड़े को पुन: orthonormalize करना होगा।


1
क्या आपके पास quaternions के साथ गोलाकार हार्मोनिक्स / लीजेंड्री बहुपद के लिए एक संदर्भ है? मैं संबंधित विषयों से निपटने के लिए एक पेपर प्रस्तुत करने वाला हूं और इस पर अन्य काम देखना (उद्धृत करना) सक्षम होगा।
माइक

4
@ माइक: मेरे सिर के बाहर, दुर्भाग्य से कुछ भी प्रकाशित नहीं हुआ। दुर्भाग्य से quaternions अभी भी बल्कि भौतिकविदों के लिए अस्पष्ट हैं। मुझे बस यह याद है, क्योंकि क्वांटम मैकेनिक 2 के मेरे ट्यूटर ने इसे एक अभ्यास बना दिया था और मैं इसके द्वारा उड़ा दिया गया था। हमने मूल रूप से एक्सप एक्सप ((a · i b + b · j c + c · kη + d) r) का उपयोग किया था, जहाँ r स्वयं एक जटिल चर था। यदि आप इसे प्लॉट करते हैं, तो आपको 3 आयामी वितरण मिलता है (हमें पहले घातीय चर के संबंध में घातीय श्रृंखला विकसित करनी थी)। यह एक "फूरियर" परिवर्तन करने की अनुमति देता है, जिसके परिणामस्वरूप कुछ आप ज्ञात एसएच शब्दों में बदल सकते हैं।
डेटेनवॉल्फ

31

कोई गिमबल लॉक तर्क अजीब नहीं लगता है, क्योंकि यह केवल यूलर एंगल्स की समस्या है। यह केवल एक समन्वित समस्या है (ध्रुवीय निर्देशांक में (r = 0 पर विलक्षणता की तरह) या दो अतिव्यापी समन्वय प्रणालियों का उपयोग करना।

कई 3 डी एप्लिकेशन जैसे ऑब्जेक्ट के ओरिएंटेशन को परिभाषित करने के लिए यूलर एंगल्स का उपयोग करना। विशेष रूप से उड़ान-सिम्स के लिए, वे अभिविन्यास को इस तरह से संग्रहीत करने के एक सैद्धांतिक रूप से उपयोगी तरीके का प्रतिनिधित्व करते हैं जो आसानी से परिवर्तनीय है।

आपको यह भी पता होना चाहिए कि "निर्देशांक स्विच करना, अध: पतन से बाहर घूमना, या दो अतिव्यापी समन्वय प्रणालियों का उपयोग करना" जैसी चीजों को भी आवश्यकता होती है। एफर्ट का मतलब है कोड। और कोड का अर्थ है प्रदर्शन। जब आपके पास प्रदर्शन न हो, तो कई 3D अनुप्रयोगों के लिए अच्छी बात नहीं है। आखिरकार, इन सभी तरकीबों से क्या हासिल करना है, अगर सिर्फ quaternions का उपयोग करने से आपको वह सब कुछ मिलेगा जो आपको चाहिए।

मैं संख्यात्मक मुद्दों के बारे में कम निश्चित हूं, क्योंकि मुझे नहीं पता है कि इन दोनों (और किसी भी विकल्प) को कैसे लागू किया जाएगा। मैंने पढ़ा है कि एक घुमाव को फिर से सामान्य करना एक रोटेशन मैट्रिक्स के लिए करने से आसान है, लेकिन यह केवल सामान्य मैट्रिक्स के लिए सच है; एक रोटेशन में अतिरिक्त बाधाएं होती हैं जो इसे तुच्छ बनाती हैं (जो कि quaternions की परिभाषा में बनाई गई हैं) (वास्तव में, यह सच है क्योंकि उनके पास स्वतंत्रता की समान संख्या है)।

एक अभिविन्यास के कई लगातार घूर्णन के साथ काम करते समय संख्यात्मक मुद्दे सामने आते हैं। कल्पना कीजिए कि आपके पास अंतरिक्ष में कोई वस्तु है। और हर बार, आप इसे करने के लिए एक छोटे से बदलाव को लागू करते हैं। प्रत्येक परिवर्तन के बाद, आपको अभिविन्यास को फिर से सामान्य करने की आवश्यकता है; अन्यथा, सटीक समस्याएँ सामने आएँगी और चीजों को पेंच करेंगी।

यदि आप मैट्रिक्स का उपयोग करते हैं, तो हर बार जब आप मैट्रिक्स गुणा करते हैं, तो आपको मैट्रिक्स को पुन: orthonormalize करना होगा। जो मैट्रिक्स आप orthonormalizing हैं, वह अभी तक एक रोटेशन मैट्रिक्स नहीं है, इसलिए मैं उस आसान orthonormalization के बारे में बहुत निश्चित नहीं हूं। हालाँकि, मैं इस बारे में निश्चित हो सकता हूं:

यह 4D वेक्टर सामान्यीकरण जितना तेज़ नहीं होगा। यही कारण है कि quaternions क्रमिक रोटेशन के बाद सामान्य करने के लिए उपयोग करते हैं।

चतुर्धातुक सामान्यीकरण सस्ता है। यहां तक ​​कि विशेष रोटेशन मैट्रिक्स सामान्यीकरण नहीं होगा उतना सस्ता । फिर, प्रदर्शन मायने रखता है।

एक और मुद्दा यह भी है कि मैट्रिसेस आसानी से नहीं करते हैं: दो अलग-अलग झुकावों के बीच प्रक्षेप।

3 डी चरित्र के साथ काम करते समय, आपके पास अक्सर चरित्र में प्रत्येक हड्डी के स्थान को परिभाषित करने वाले परिवर्तनों की एक श्रृंखला होती है। हड्डियों का यह पदानुक्रम एक विशेष मुद्रा में चरित्र का प्रतिनिधित्व करता है।

अधिकांश एनीमेशन प्रणालियों में, किसी विशेष समय में एक चरित्र के लिए मुद्रा की गणना करने के लिए, एक रूपांतरणों के बीच प्रक्षेप करता है। इसके लिए संबंधित परिवर्तनों को प्रक्षेपित करना आवश्यक है।

दो मैट्रिसेस को इंटरपोल करना ... नॉन-ट्रिवियल है। कम से कम, यह है कि आप कुछ चाहते हैं जो अंत में एक रोटेशन मैट्रिक्स जैसा दिखता है। आखिरकार, प्रक्षेप का उद्देश्य दोनों परिवर्तनों के बीच कुछ अंश-उत्पादन करना है।

चतुर्धातुक के लिए, आप सभी की जरूरत है एक 4D lerp के बाद एक सामान्य है। यह सब है: दो चतुर्धातुक को लें और घटकों को रैखिक रूप से प्रक्षेपित करें। परिणाम को सामान्य करें।

यदि आप बेहतर गुणवत्ता वाले प्रक्षेप चाहते हैं (और कभी-कभी आप ऐसा करते हैं), तो आप गोलाकार लार को बाहर ला सकते हैं । इससे प्रक्षेप अधिक अव्यवस्थित अभिविन्यास के लिए बेहतर व्यवहार करता है। यह गणित बहुत अधिक कठिन है और मैटरनियों के लिए क्वाटर्न्स से अधिक संचालन की आवश्यकता है।


7

राय: कोटेशन अच्छे हैं।

रोटेशन मैट्रिक्स: मामूली नुकसान : मैट्रिसेस का गुणा क्वैटन से ~ 2 गुना धीमा है। माइनर एडवांटेज : मैट्रिक्स-वेक्टर गुणन ~ 2 गुना तेज, और बड़ा है। भारी नुकसान : सामान्यीकरण! घरम-शमित विषम है, जो विभेदक समीकरणों को करते समय एक उच्च क्रम का सटीक उत्तर नहीं देता है। अधिक परिष्कृत तरीके बहुत जटिल और महंगे हैं।

अक्ष (कोण = अक्ष की लंबाई) मामूली लाभ : छोटा। मध्यम नुकसान : एक वेक्टर के लिए गुणा और आवेदन ट्रिगर के साथ धीमा है। मध्यम नुकसान : उत्तर-ध्रुव विलक्षणता लंबाई = 2 * pi पर, क्योंकि सभी अक्ष निर्देश कुछ नहीं करते हैं। अधिक कोड (और डिबगिंग) स्वचालित रूप से इसे फिर से भरना जब यह 2pi के पास हो जाता है।


5

आमतौर पर, हम बस एक नए बिंदु X '= (x, y, z) बिंदु की मैपिंग चाहते हैं X' = (x ', y', z ') बाधा के अधीन है कि X ^ 2 = X' ^ 2। और बहुत सी चीजें हैं जो ऐसा करती हैं।

हम पूरी तरह से नहीं है बस कि चाहते हैं। एक बहुत महत्वपूर्ण सूक्ष्मता है जो बहुत से लोगों को याद आती है । आप जिस निर्माण के बारे में बात कर रहे हैं (त्रिकोणों का उपयोग करें और ट्रिगर, आदि का उपयोग करें) सही ढंग से एक वेक्टर को दूसरे में घुमाएगा। लेकिन असीम रूप से कई घुमाव हैं जो ऐसा करेंगे। विशेष रूप से, आपके रोटेशन करने के बाद मैं साथ आ सकता हूं, और फिर एक्स 'वेक्टर के चारों ओर पूरे सिस्टम को घुमा सकता हूं। वह X की स्थिति को बिल्कुल भी नहीं बदलेगा। आपके रोटेशन और मेरा का संयोजन एक और एकल रोटेशन के बराबर है (चूंकि घुमाव समूह बनाते हैं )। सामान्य तौर पर, आपको ऐसे किसी भी रोटेशन का प्रतिनिधित्व करने में सक्षम होना चाहिए।

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


4

मेरे द्वारा देखे जाने वाले सामान्य कारण कोई भी गैंबल लॉक या संख्यात्मक मुद्दे नहीं हैं।

और वे अच्छे कारण हैं।

जैसा कि आप पहले से ही समझते हैं, चतुर्भुज एक मनमाना अक्ष के चारों ओर एक ही रोटेशन को घेरते हैं जैसा कि यूलर 3-स्पेस में तीन अनुक्रमिक घुमावों के विपरीत है। यह जिम्बल लॉक को चतुर्धातुक प्रतिरक्षा बनाता है ।

इसके अलावा, प्रक्षेप के कुछ रूप अच्छे और आसान हो जाते हैं, जैसे SLERP

... या दो अतिव्यापी समन्वय प्रणालियों का उपयोग करना।

प्रदर्शन के दृष्टिकोण से, आपका समाधान बेहतर क्यों है?

मैं जा सकता था, लेकिन quaternions उपयोग करने के लिए सिर्फ एक संभव उपकरण है। यदि वे आपकी आवश्यकताओं के अनुरूप नहीं हैं, तो उनका उपयोग न करें।


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

3

यह ध्यान रखने योग्य है कि रोटेशन से संबंधित सभी गुण वास्तव में Quaternions के गुण नहीं हैं: वे यूलर-रोड्रिग्स पैरामीटर के गुण हैं , जो कि 3 डी रोटेशन का वर्णन करने के लिए उपयोग की जाने वाली वास्तविक 4-तत्व संरचना है।

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

आप यहां पेपर पढ़ सकते हैं: https://archive.org/details/collmathpapers01caylrich । लेकिन उस समय, Quaternions और रोटेशन और केली के बीच कोई संबंध नहीं था, बल्कि केली को यह जानकर आश्चर्य हुआ था कि:

वास्तव में, सूत्रकार एम। ओलींडे रोड्रिग्स लिउविले, टीवी द्वारा इस तरह के एक परिवर्तन के लिए दिए गए हैं, "देस लुईस géométriques qui régissent les déplacements d'un systèt solide [...]" (या कंघी। Math।, T। iii। पृष्ठ 224 [6])। यहां इन गुणांकों की उपस्थिति के लिए यह एक दिलचस्प सवाल है, एक प्राथमिकता है।

हालाँकि, Quaternions के बारे में कुछ भी आंतरिक नहीं है जो रोटेशन को कोई लाभ देता है। चतुर्भुज जिम्बल लॉक से बचते नहीं हैं; यूलर-रॉड्रिगो पैरामीटाइजेशन करते हैं। बहुत कम कंप्यूटर प्रोग्राम जो रोटेशन करते हैं, वास्तव में Quaternion प्रकारों को लागू करने की संभावना है जो प्रथम श्रेणी के जटिल गणितीय मूल्य हैं। दुर्भाग्य से, Quaternions की भूमिका की एक गलतफहमी कहीं न कहीं लीक हो गई है जिसके परिणामस्वरूप कई काल्पनिक ग्राफिक्स छात्रों को कई काल्पनिक स्थिरांक के साथ जटिल गणित का विवरण सीख रहे हैं और फिर इस बात से चकित किया जा रहा है कि यह क्यों रोटेशन के साथ समस्याओं को हल करता है।


1

एक उत्तर जो कोई व्यक्ति पढ़ सकता है: सभी अभ्यावेदन के साथ थकाऊ समस्याएं हैं। मैटरिस की तुलना में क्वाटरनियन छोटे होते हैं लेकिन क्वाटरनियन गुणन केवल एक वेक्टर वेक्टर उत्पाद या ऐसा नहीं है, और वास्तव में दो 3x3 मेट्रिक्स के डॉट उत्पाद की तुलना में कंप्यूटर पर अधिक समय लगता है। (कंप्यूटर सामान्य मैट्रिसेस के साथ काम करने में बहुत अच्छे हैं)

मैट्रिस में हालांकि अन्य कष्टप्रद विशेषताएं हैं। उदाहरण के लिए, वे लंबे समय में स्थिर प्राणी नहीं हैं। जब 3 डी अंतरिक्ष में घूर्णन मॉडलिंग करते हैं, तो एक आम तौर पर एक दूसरे के ऊपर एक ओरिएंटेशन मैट्रिक्स में घुमावों को जमा करता है, जो कि संदर्भ फ्रेम के अभिविन्यास को संग्रहीत करते हुए सिर्फ एक रोटेशन मैट्रिक्स है। यह प्रक्रिया लाखों जोड़-घटाव के कारण ओ-मैट्रिक्स को एक सख्त रोटेशन मैट्रिक्स रूप से मोड़ने का कारण बनेगी। यह मैट्रिक्स को समय-समय पर पुन: कॉन्फ़िगर करके देखा जा सकता है, लेकिन ऐसी स्थितियां हैं जब यह nontrivial है। पहचान मैट्रिक्स का नो-रोटेशन केस।

आप रोटेशन के एक अक्ष-कोण प्रतिनिधित्व (या चतुर्धातुक प्रतिनिधित्व) को ढूंढना चाहेंगे, और फिर उसके लिए एक मैट्रिक्स को पुन: पेश करेंगे। अधिकांश एल्गोरिदम एक शून्य वेक्टर का उत्पादन करते हैं, और फिर इस मामले में शून्य-विभाजन का सामना करते हैं। इस प्रकार के मामलों में यह आम तौर पर एक खराब विचार है कि "अगर 0 है तो ..." के साथ ऐसे मामलों से बचने की कोशिश करें, क्योंकि समाधान के बाद से) एक कांटे धीमे हैं और बी) आप अभी भी मशीन एप्सिलॉन को अलग कर सकते हैं विलक्षणता और भयावह त्रुटियों के साथ अंत।

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