Quaternions उनके बीच इंटरपोलेट घूर्णन के लिए अच्छे हैं। अब तक तो सब ठीक है।क्या मैं यॉ/पिच/रोल से बनाए गए दो क्वाटरनियंस से रोटेशन को अलग कर सकता हूं?
यदि मेरे पास नेटवर्किंग गेम है, तो क्या यह रोटेशन को vector3f के रूप में स्थानांतरित करने के लिए पर्याप्त होगा या क्या मुझे क्वाटरनियन का उपयोग करना चाहिए? खेल को आसान बनाने के लिए मुझे अंतिम प्रेषित रोटेशन और वर्तमान के बीच अंतर करना पड़ सकता है।
लेकिन क्या मैं दो क्वाटरनियंस के बीच घूर्णन को घुमा सकता हूं जो यॉ/पिच/रोल से बनाए गए थे?
Quaternion a = Quaternion.FromYawPitchRoll(x1,y1,z1);
Quaternion b = Quaternion.FromYawPitchRoll(x2,y2,z2);
a.Interpolate(b, value); // will this work correctly?
आपको उल्लेख करना चाहिए (जैसा कि @ जस्टिकल ने किया था) कि सादे-ओल 'लेर्प कई मामलों में quaternions के लिए ठीक काम करता है। –
मैंने पढ़ा है कि यूलर रोटेशन स्पष्ट नहीं हैं, इसलिए आप उनके बीच अंतर नहीं कर सकते हैं। क्या उन्हें quaternions में परिवर्तित करने वास्तव में उन्हें स्पष्ट बनाते हैं, जो मेरे लिए थोड़ा अजीब लग रहा है। – codymanix
@ कोडीमेनिक्स: शायद, लेकिन यह मामला है। आप _use_ euler कोण सीधे या तो नहीं कर सकते हैं।चूंकि quaternions की स्वतंत्रता की एक अतिरिक्त डिग्री है, इसलिए वे जिम्बल लॉक के साथ पूरी समस्या से बचते हैं, इससे कोई फर्क नहीं पड़ता कि पिछले प्रतिनिधित्व क्या था, या बाद में इसे किस प्रकार परिवर्तित किया गया। यूलर कोण -> quaternion -> मैट्रिक्स पूरी तरह से कोशेर है। –