थ्री.जेएस में, मैं कैमरे ऑब्जेक्ट को चयनित ऑब्जेक्ट पर घुमाने के लिए THREE.quaternion का उपयोग करना चाहता हूं।Three.js कैमरे को घुमाने के लिए quaternion का उपयोग कैसे करें
मैंने वेब पर खोज की लेकिन मुझे इस quaternion कक्षा का उपयोग करने के बारे में कोई उदाहरण/डेमो या दस्तावेज़ नहीं मिला।
मैं निम्नलिखित कोड के साथ अपने भाग्य को आजमाने:
camera = new THREE.PerspectiveCamera(40, window.innerWidth/window.innerHeight, 1, 10000);
camera.position.y = 10;
camera.position.z = 0;
camera.position.x = radious;
camera.useQuaternion = true;
// I did use the TrackballTrackballControls. Maybe it causes the problem so I put it here
controls = new THREE.TrackballControls(camera, document.getElementById(_canvasElement));
// function to make the camera rotate to the object
function focusOn3DObject(obj){
obj.useQuaternion = true;
obj.quaternion = new THREE.Quaternion(obj.position.x, obj.position.y, obj.position.z, 1);
var newQuaternion = new THREE.Quaternion();
THREE.Quaternion.slerp(camera.quaternion, obj.quaternion, newQuaternion, 0.07);
camera.quaternion = newQuaternion;
}
लेकिन यह काम नहीं करता। क्या मैं कुछ भुल गया? कृपया मदद करें। अग्रिम में धन्यवाद।
obj.quaternion = new THREE.Quaternion(obj.position.x, obj.position.y, obj.position.z, 1);
आप
obj.useQuaternion = true
स्थापित करने के लिए दृश्य पर आपत्ति जोड़ने, जब आप बारी बारी से यह स्वतः ही obj.quaternion
को लागू किया जाएगा के बाद की जरूरत है:
ध्यान दें कि नए THREE.js में, 'useQuaternion' हटा दिया गया है। पुस्तकालय अब डिफ़ॉल्ट रूप से quaternions का उपयोग करता है। –
यह भी ध्यान दें कि आज (अगस्त/2015) तीन की कैमरा ऑब्जेक्ट्स में एक विधि है .lookAt (vector3) - यह किसी ऑब्जेक्ट की स्थिति के साथ वेक्टर 3 प्राप्त करता है। कैमरे को देखने के लिए आप पैरामीटर के रूप में किसी ऑब्जेक्ट 3 डी.position को पास कर सकते हैं। इसे देखें: http://threejs.org/docs/index.html#Reference/Cameras/Camera – Tiago