In Three.js möchte ich THREE.quaternion verwenden, um das Kameraobjekt zum ausgewählten Objekt rotieren zu lassen.Three.js So verwenden Sie quaternion zum Drehen der Kamera
Ich habe das Web gesucht, aber kein Beispiel/Demo oder Dokument über die Verwendung dieser Quaternion-Klasse gefunden.
Ich versuche mein Glück mit folgendem Code:
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;
}
Aber es funktioniert nicht. Habe ich etwas verpasst? Bitte helfen. Danke im Voraus.
Beachten Sie, dass 'useQuaternion' in neueren THREE.js-Builds entfernt wurde. Die Bibliothek verwendet jetzt standardmäßig Quaternionen. –
Beachten Sie auch, dass heute (Aug/2015) THREE's Camera-Objekte eine Methode .lookAt (vector3) haben - sie erhalten einen Vector3 mit der Position eines Objekts zum Betrachten. Sie können jede object3d.position als Parameter übergeben, damit die Kamera sie betrachten kann. Schau es dir an: http://threejs.org/docs/index.html#Reference/Cameras/Camera – Tiago