在Three.js中,我想使用THREE.quaternion使相機對象旋轉到所選對象。Three.js如何使用四元數來旋轉相機
我沒有搜索網頁,但沒有找到關於如何使用這個四元數類的示例/演示或文檔。
我試試我的運氣與下面的代碼:
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;
}
但它不工作。我錯過了什麼? 請幫忙。提前致謝。
請注意,在較新的THREE.js版本中,'useQuaternion'已被刪除。該庫現在默認使用四元數。 – 2014-01-14 00:54:20
另請注意,今天(Aug/2015)THREE的Camera對象具有一個方法.lookAt(vector3) - 它接收一個Vector3並查看一個對象的位置。您可以傳遞任何object3d.position作爲參數,供攝像機查看。檢查出來:http://threejs.org/docs/index.html#Reference/Cameras/Camera – Tiago 2015-08-29 22:40:42