Zoom-Kamera in threeJS ohne trackball-Steuerelemente oder andere Kamera-control-Bibliothek
Ich versuche, threeJS zur Steuerung einer Kamera in meine Szene. Momentan habe ich die Kamera aufgestellt, um den orbit in einen Kreis um mein Objekt mit der linken und rechten Tasten auf meiner Tastatur. Aber weiß jemand, wie ich den vergrößern? Hier ist meine aktuelle code:
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);
}
InformationsquelleAutor mheavers | 2012-04-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie wollen eine echte zoom, ohne die Kamera zu bewegen, dann können Sie spielen mit dem field of view (fov) - parameter der Kamera:
Finden Sie unter: http://jsfiddle.net/bvcCB/87/
Wenn Sie möchten, um die Kamera zu bewegen in der Nähe (oder weit) der Gegner, dann berechnen Sie den Vektor von der Kameraposition zum Ziel, und bewegen Sie die Kamera-position entlang des Vektors.
InformationsquelleAutor Juan Mellado
Vom r69 Sie können nun mit der Kamera.zoom:
.updateProjectionMatrix()
!InformationsquelleAutor chrisarton