le zoom de la caméra dans threeJS sans boule de commande de contrôles ou d'un autre appareil de contrôle de la bibliothèque
Je suis en train d'utiliser threeJS pour contrôler une caméra dans ma scène. J'ai actuellement l'appareil photo mis en place en orbite autour dans un cercle autour de mon objet à l'aide des touches gauche et droite de mon clavier. Mais personne ne sait comment je pourrais zoom? Voici mon code actuel:
camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 1, 10000 );
camera.position.set(0,20,35);
var rotSpeed = .02;
function checkRotation(){
var x = camera.position.x,
y = camera.position.y,
z = camera.position.z;
if (keyboard.pressed("left")){ //MH - find a way to do this in a switch statement
camera.position.x = x * Math.cos(rotSpeed) + z * Math.sin(rotSpeed);
camera.position.z = z * Math.cos(rotSpeed) - x * Math.sin(rotSpeed);
} else if (keyboard.pressed("right")){
camera.position.x = x * Math.cos(rotSpeed) - z * Math.sin(rotSpeed);
camera.position.z = z * Math.cos(rotSpeed) + x * Math.sin(rotSpeed);
} else if(keyboard.pressed("up")){
//zoom in
} else if (keyboard.pressed("down")){
//zoom out
}
camera.lookAt(scene.position);
}
OriginalL'auteur mheavers | 2012-04-27
Vous devez vous connecter pour publier un commentaire.
Si vous voulez un vrai zoom, sans bouger la caméra, alors vous pouvez jouer avec le champ de vue (fov) paramètre de l'appareil photo:
Voir: http://jsfiddle.net/bvcCB/87/
Si vous voulez déplacer la caméra de près (ou de loin) de la cible, puis de calculer le vecteur à partir de la position de la caméra à la cible, et de déplacer la position de la caméra le long de ce vecteur.
OriginalL'auteur
De r69 vous pouvez maintenant utiliser l'appareil.zoom:
.updateProjectionMatrix()
!OriginalL'auteur