this numpy implementation के समान मैट्रिस या वैक्टर का उपयोग किए बिना इसके बारे में जाने का कोई तरीका है। हम रेखांश/अक्षांश के बारे में सोच सकते हैं क्योंकि दो क्वाटरनीयन रोटेशन एक साथ रचित हैं।
चलो एक ज़ेड-अप दाहिनी ओर समन्वय प्रणाली के साथ काम करते हैं। आइए रेखांश φ और अक्षांश θ, और दोनों बिंदुओं (φ, θ) के रूप में प्रतिनिधित्व बिंदु को कॉल करें। दृश्य के लिए, लाल अक्ष एक्स से मेल खाती है, वाई के लिए हरे, और जेड
करने के लिए नीले हम चार का समुदाय से रोटेशन का प्रतिनिधित्व (0, 0), लाल रंग में, करने के लिए (एक खोजना चाहते हैं, ख), हरे रंग में:
हम अनुदैर्ध्य रोटेशन के पहले एक संयोजन के रूप में इस रोटेशन का प्रतिनिधित्व कर सकते हैं, तो अक्षांशीय रोटेशन की, तो जैसे:
सबसे पहले, हम एक जेड अक्ष के साथ है, जो एक्स बदल देती है और Y अक्ष तक घुमाया। फिर, हम नए स्थानीय वाई अक्ष के साथ बी द्वारा घुमाए गए। इस प्रकार, हम इस घूर्णन के लिए अक्ष/कोण जानकारी के दो सेट जानते हैं।
सौभाग्य से, अक्ष/कोण से quaternions में रूपांतरण पहले ही ज्ञात है। यह देखते हुए एक कोण α और एक धुरी वेक्टर ω, जिसके परिणामस्वरूप चार का समुदाय है:
(cos(α/2), ω.x*sin(α/2), ω.y*sin(α/2), ω.z*sin(α/2))
तो सबसे पहले रोटेशन के साथ (0, 0, 1) अक्ष एक डिग्री रोटेशन का प्रतिनिधित्व करती है, दे रही है हमें:
q1 = (cos(a/2), 0, 0, sin(a/2))
दूसरे रोटेशन हमें दे रही है, तब्दील (0, 1, 0) अक्ष के साथ डिग्री के ख एक रोटेशन का प्रतिनिधित्व करती है:
q2 = (cos(b/2), 0, sin(b/2), 0)
हम इन दो quaternions गुणा हमें (0 0,) से (एक, ख) से इस यौगिक रोटेशन का प्रतिनिधित्व करने के लिए एक एकल चौका देने के लिए कर सकते हैं। Quaternion गुणा के लिए सूत्र थोड़ा लंबा है, लेकिन आप इसे here पा सकते हैं। परिणाम:
q2*q1 = (cos(a/2)cos(b/2), -sin(a/2)sin(b/2), cos(a/2)sin(b/2), sin(a/2)cos(b/2))
ऐसा नहीं है कि यह बहुत मायने रखता है, लेकिन हम पुष्टि कर सकते हैं कि यह सूत्र numpy पहले उल्लेख किया है कार्यान्वयन के रूप में ही है।
जेसीओपर ने एक महान बिंदु का उल्लेख किया कि इस मामले में एक्स अक्ष के साथ एक डिग्री स्वतंत्रता अभी भी बाकी है। यदि θ ± 90 डिग्री के भीतर रहता है, तो हम कल्पना कर सकते हैं कि जेड अक्ष हमेशा ऊपर की ओर इशारा करता है। इसका एक्स एक्स रोटेशन को बाधित करने का असर पड़ता है और उम्मीद है कि आप क्या चाहते हैं।
आशा है कि इससे मदद मिलती है!
संपादित करें: ध्यान दें कि यह अनिवार्य रूप से 2 यूलर कोणों के साथ काम करने जैसा ही है। तो इस रूपांतरण को उलट करने के लिए, आप किसी भी quaternion का उपयोग यूलर कोण रूपांतरण में कर सकते हैं, बशर्ते कि रोटेशन ऑर्डर समान हो।
हाय जोन_डर्कस्टार, इतनी रेखांश फाई है, अक्षांश थाटा है, लेकिन क्या होगा? – rick
इसके फाई तो? मैं भूल गया कि कौन सा = पी गोलाकार निर्देशांक का उपयोग करने के बाद से थोड़ी देर हो गया है। मैं वास्तव में चित्र नहीं कर सकता कि एक तीसरा कोण क्या करेगा। rho बस परिमाण हो सकता है, लेकिन फिर दो Phis क्यों? मैं आपको उस पर इंगित करने से कहीं ज्यादा मदद नहीं कर सकता, शुभकामनाएं –
मैं इसका उपयोग अक्षांश/देशांतर से कार्टेशियन निर्देशांक में परिवर्तित करने के लिए कर रहा हूं: '\t फ्लोट phi = ofDegToRad (ll.lat + 90); \t फ्लोट theta = ofDegToRad (ll.lon - 90); \t एक्स = पाप (फाई) * कोस (थेटा); \t वाई = पाप (फाई) * पाप (थेटा); \t z = cos (phi); ' अब मुझे इसे समन्वय के बजाए घूर्णन में बदलने का एक तरीका चाहिए। रोटेशन धुरी/कोण या quaternion में हो सकता है। – rick