तीन.जेएस में, किसी ऑब्जेक्ट का अभिविन्यास अपने यूलर रोटेशन वेक्टर object.rotation
द्वारा निर्दिष्ट किया जा सकता है। रोटेशन वेक्टर के तीन घटक क्रमशः ऑब्जेक्ट के आंतरिक एक्स-अक्ष, वाई-अक्ष और जेड-अक्ष के चारों ओर रेडियंस में घूर्णन का प्रतिनिधित्व करते हैं।
जिस क्रम में घूर्णन किया जाता है उसे object.rotation.order
द्वारा निर्दिष्ट किया गया है। डिफ़ॉल्ट क्रम "XYZ" है - एक्स-अक्ष के चारों ओर घूर्णन पहले होता है, फिर y-axis, फिर z-axis।
ऑब्जेक्ट के आंतरिक समन्वय प्रणाली के संबंध में घूर्णन किया जाता है - विश्व समन्वय प्रणाली नहीं। यह महत्वपूर्ण है। इसलिए, उदाहरण के लिए, एक्स-रोटेशन के बाद, ऑब्जेक्ट की वाई- और जेड-अक्ष आमतौर पर विश्व अक्षों के साथ गठबंधन नहीं की जाएगी। इस तरह से निर्दिष्ट घूर्णन अद्वितीय नहीं हैं।
तो, उदाहरण के लिए, यदि कोड में आपके द्वारा निर्दिष्ट,
camera.rotation.y = y_radians; // Y first
camera.rotation.x = x_radians; // X second
camera.rotation.z = 0;
रोटेशन, वस्तु की rotation.order
से लागू होते हैं जब आप उन्हें निर्दिष्ट में नहीं।
अपने मामले में, आप rotation.order
को "YXZ" पर सेट करने के लिए अधिक सहज महसूस कर सकते हैं, जो "शीर्षक, पिच और रोल" के बराबर है।
यूलर कोणों के बारे में अधिक जानकारी के लिए, Wikipedia article देखें। आलेख में बताए गए अनुसार, तीन.जेएस टेट-ब्रायन सम्मेलन का पालन करते हैं।
तीन.जेएस आर 61
आपकी टिप्पणी काम करती है। कैमरा ऑब्जेक्ट प्रारंभिकता में, मैंने कोड की निम्न पंक्ति, 'camera.eulerOrder = "YXZ" जोड़ा; ' –
अब यह' camera.rotation.order =' YXZ 'है; ' – WestLangley
क्या आपका मतलब" यो, पिच और रोल" ? :) – fuzz