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;
}
을하지만 그것은 작동하지 않습니다
나는 다음 코드를 사용하여 내 운을 시험해. 내가 뭐 놓친 거 없니? 도와주세요. 미리 감사드립니다. 당신은 당신이 자동으로 obj.quaternion
에 적용됩니다 회전 할 때, 현장에 객체를 추가 한 후
obj.useQuaternion = true
을 설정해야
obj.quaternion = new THREE.Quaternion(obj.position.x, obj.position.y, obj.position.z, 1);
:
새로운 THREE.js 빌드에서는 'useQuaternion'이 제거되었습니다. 이제 라이브러리는 기본적으로 쿼터니언을 사용합니다. –
또한 오늘 (Aug/2015) THREE의 Camera 객체에는 .lookAt (vector3) 메서드가 있습니다. - 보려는 객체의 위치를 Vector3로받습니다. 카메라가 볼 수 있도록 object3d.position을 매개 변수로 전달할 수 있습니다. 그것을 확인하십시오 : http://threejs.org/docs/index.html#Reference/Cameras/Camera – Tiago