camera - tomar - panoramica nikon d7200
three.js: gira alrededor del origen después de la cámara panorámica (0)
Tengo un avión / placa, con una cuadrícula, que es de aproximadamente 1100 x 1100. Tengo el desplazamiento horizontal, el zoom y el funcionamiento en rotación, excepto por el hecho de que la placa vuelve al centro de la pantalla después de haber sido desplazada. Entonces, si no hago una panorámica del tablero, entonces todo funciona. Después de mover el panel, retrocede al centro de la pantalla cuando intento rotarlo. No puedo imaginar cómo cambiar el origen de la cámara para que gire alrededor del centro del tablero. Parece que gira alrededor del centro de la cámara.
var radius = 1500, theta = 45 * 0.5, onMouseDownTheta = 45 * 0.5; var fov = 45; var mouse2D = new THREE.Vector3 (0, 10000, 0.5);
cameraX = radius * Math.sin (THREE.Math.degToRad (theta)); cámaraY = 1000; cameraZ = radio * Math.cos (THREE.Math.degToRad (theta));
camera = new THREE.PerspectiveCamera (fov, window.innerWidth / window.innerHeight, 1, 10000); camera.position.set (cameraX, cameraY, cameraZ);
escena = new THREE.Scene (); camera.lookAt (scene.position);
hacer();
ThreeBoard.prototype.render = function () {
mouse2D.x = (event.clientX / window.innerWidth) * 2 - 1;
mouse2D.y = - (event.clientY / window.innerHeight) * 2 + 1;
// rotate
if (isMouseDown && isShiftPressed && !isCtrlPressed) {
theta = ((event.pageX - mouse2D.x) * 0.5) + onMouseDownTheta;
cameraX = radius * Math.sin(THREE.Math.degToRad(theta));
cameraZ = radius * Math.cos(THREE.Math.degToRad(theta));
camera.position.set(cameraX, cameraY, cameraZ);
camera.lookAt(scene.position);
}
// pan
if (isMouseDown && isShiftPressed && isCtrlPressed) {
theta = ((event.pageX - mouse2D.x) * 0.5) + onMouseDownTheta;
cameraX += 10 * mouse2D.x;
// cameraY += 10;
cameraZ -= 10 * mouse2D.y;
camera.position.set(cameraX, cameraY, cameraZ);
// camera.lookAt(scene.position);
}
renderer.render(scene, camera);
};