संभवतः अक्ष के लंबवत ऑब्जेक्ट को वर्तमान ड्रैग दिशा में घूमने के लिए सबसे सहज है, या तो प्रत्येक माउस गति के साथ वृद्धिशील, या ड्रैग स्टार्ट स्थिति के सापेक्ष। दो विकल्प थोड़ा अलग उपयोगकर्ता इंटरैक्शन देते हैं, जिनमें से प्रत्येक के पास उनके प्लस और माइनस होते हैं।
एक कोण को बदलने के लिए relatively straightforward तरीका है और एक 3 डी वेक्टर घुमावदार अक्ष का प्रतिनिधित्व करता है जो घूर्णन मैट्रिक्स में घुमाया जाता है।
आप सही हैं कि वृद्धिशील घूर्णन के माध्यम से कच्चे रोटेशन मैट्रिक्स को अपडेट करने के परिणामस्वरूप मैट्रिक्स अब शुद्ध रोटेशन मैट्रिक्स नहीं होगा। ऐसा इसलिए है क्योंकि एक 3x3 रोटेशन मैट्रिक्स में घूर्णन का प्रतिनिधित्व करने के लिए आवश्यकतानुसार तीन गुना अधिक डेटा होता है।
घूर्णन का प्रतिनिधित्व करने के लिए एक अधिक कॉम्पैक्ट तरीका Euler Angles है, जिसमें कम से कम 3 मान वेक्टर हैं। आप वर्तमान रोटेशन को यूलर कोण वेक्टर के रूप में ले सकते हैं, इसे मैट्रिक्स में परिवर्तित कर सकते हैं, रोटेशन (वृद्धिशील या अन्यथा) लागू कर सकते हैं, और मैट्रिक्स को वापस यूलर कोण वेक्टर में परिवर्तित कर सकते हैं। वह अंतिम चरण स्वाभाविक रूप से आपके मैट्रिक्स में किसी भी गैर-घूर्णन घटक को खत्म कर देगा, ताकि आप एक बार फिर से अगले राज्य के लिए शुद्ध घूर्णनशील मैट्रिक्स के साथ समाप्त हो जाएं।
यूलर कोण अवधारणात्मक रूप से अच्छे हैं, हालांकि यह पीछे और आगे रूपांतरण करने के लिए बहुत काम है।
एक और व्यावहारिक विकल्प Quaternions (also) है, जो चार तत्व वैक्टर हैं। चार तत्व रोटेशन और वर्दी स्केल निर्दिष्ट करते हैं, और ऐसा होता है कि यदि आप वेक्टर में इकाई लंबाई में सामान्य और सामान्य होते हैं, तो आपको 1.0 का स्केल कारक मिल जाएगा। ऐसा लगता है कि एक कोण अक्ष मूल्य भी द्वारा
q.x = sin(0.5*angle) * axis.x;
q.y = sin(0.5*angle) * axis.y;
q.z = sin(0.5*angle) * axis.z;
q.w = cos(0.5*angle);
बहुत आसानी से एक चौका मूल्य में बदला जा सकता फिर आप चौका उत्पाद ले जा सकते हैं वर्तमान रोटेशन चौका और वृद्धिशील की (जो केवल साधारण गुणा और इसके उपयोग करता है) घूर्णन quaternion एक नया quaternion पाने के लिए जो दोनों घूर्णन प्रदर्शन का प्रतिनिधित्व करता है। उस बिंदु पर आप शुद्ध रोटेशन सुनिश्चित करने के लिए लंबाई को सामान्य कर सकते हैं, लेकिन अन्यथा घुमावदार संयोजन को लगातार जारी रखें।
क्वाटरनियन को रोटेशन मैट्रिक्स में कनवर्ट करना बहुत सरल है (केवल गुणा और जोड़ का उपयोग करता है) जब आप पारंपरिक ग्राफिक्स एपीआई का उपयोग करके अपने घूर्णन वाले राज्य में मॉडल प्रदर्शित करना चाहते हैं।
मैं चल बिन्दु अस्पष्टता के प्रभाव overestimated। बस घूर्णन जमा करना ठीक काम करता है। मैं quaternions में देखता हूँ, लेकिन चूंकि मैं केवल 2 axes घूर्णन कर रहा हूँ, सबकुछ ठीक लग रहा है। –