/ / क्वाटरनियन ओरिएंटेशन C ++ - c ++, 3d, रोटेशन, यूलर-एंगल्स पर आधारित एक समन्वय प्रणाली के लिए 3 डी यूलर एंगल्स को घुमाएँ

क्वाटरनियन अभिविन्यास सी ++ - सी ++, 3 डी, रोटेशन, यूलर-कोण पर आधारित समन्वय प्रणाली में 3 डी यूलर कोण घुमाएं

मेरे पास XYZ की एक समन्वय प्रणाली है, जहां मैं घुमाता हूंयूलर एंगल्स द्वारा, X के साथ शुरू होता है, फिर Y, फिर Z। मुझे इस रोटेशन को बदलने की जरूरत है, यह बराबर X Y Z रोटेशन है, लेकिन एक अन्य समन्वय प्रणाली के सापेक्ष, एक चतुर्भुज अभिविन्यास द्वारा निर्दिष्ट के रूप में। दुर्भाग्य से, मैं अटक गया।

समायोजन ध्रुव

उत्तर:

जवाब के लिए 0 № 1

ऐसा करने का कोई आसान तरीका नहीं है क्योंकि यूलर एंगल्स केवल अपने इन्फिनिटिमल वर्जन कॉम्पिटिबेल में रोटेशन मैट्रिसेस के उत्पाद के साथ हैं।

दी गई शर्तों के तहत सबसे आसान तरीका मौजूदा कोणों को रोटेशन के चतुर्धातुक में बदलना है, दो चतुष्कोणों को गुणा करें और उत्पाद से नए यूलर कोण निकालें।


एक उपयोगी लिंक जो कई एकत्रित करता है यदि सभी अक्ष-रोटेशन से चतुर्धातुक और पीछे के परिवर्तनों के लिए नहीं: http://www.euclideanspace.com/maths/geometry/rotations/conversions/eulerToQuaternion/index.htm


डे, ए, बी, सी के लिए आधा कोणों के साथ नकारेंएक्स, वाई, जेड कुल्हाड़ियों, और (सीए, सा) आदि के आसपास घूर्णन इसी कोसाइन-साइन जोड़े। फिर कोण 2 ए के साथ एक्स अक्ष के चारों ओर घुमाव चतुर्भुज से मेल खाती है

ca+sa*i

जहाँ i, j, k x, y, z दिशाओं में आधार चतुष्कोण हैं। रोटेशन Rz (2c) * Ry (2b) * Rx (2a) क्वाटरनियन से मेल खाता है

r=(cc+sc*k)*(cb+sb*j)*(ca+sa*i)

यदि क्यू एक और इकाई चतुर्धातुक है, तो घुमाया गयाq के अनुरूप रोटेशन का आधार qiq ", qiq", qkq "है, जहाँ q" q का संयुग्म है। इसका उद्देश्य इस नए आधार में अक्ष घूर्णन के साथ आर का प्रतिनिधित्व करना है। यदि नए आधे कोण u, v, w हैं, तो किसी को हल करना होगा

r=(cw+sw*qkq")*(cv+sv*qjq")*(cu+su*qiq")

इन आधे-कोणों के लिए, जो qq "= 1 = q" q के कारण सरल होता है

q"rq=(cw+sw*k)*(cv+sv*j)*(cu+su*i)

अब आप फिर से वेब साइट पर सूत्रों का उपयोग कर सकते हैं।