W Three.js, chciałbym użyć THREE.quaternion, aby obrócić obiekt kamery do wybranego obiektu.Three.js Jak używać kwaternionu do obracania kamery
Poszukałem w Internecie, ale nie znalazłem przykład/demo lub dokument o tym, jak używać tej quaternion klasy.
spróbuję szczęścia z następującego kodu:
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;
}
Ale to nie działa. Przegapiłem coś? Proszę o pomoc. Z góry dziękuję.
Należy zauważyć, że w nowszych kompilacjach THREE.js usunięto "useQuaternion". Biblioteka teraz domyślnie używa kwaternionów. –
Należy również zauważyć, że obecnie (Sierpień/2015) obiekty TRÓJMA Camera mają metodę .lookAt (vector3) - otrzymuje Vector3 z pozycją obiektu do obejrzenia. Możesz przekazać dowolny parametr object3d.position jako parametr, aby kamera mogła na niego spojrzeć. Sprawdź to: http://threejs.org/docs/index.html#Reference/Cameras/Camera – Tiago