如何在THREE.js中将等距相机指向立方体的中心

How to point isometric camera to the center of cube in THREE.js?

本文关键字:相机 立方体 THREE js      更新时间:2023-09-26

我正在努力解决一个练习问题,也许你可以帮助我。我得设置一个摄像头,用THREE.js来处理。立方体应该保持它的初始比例,相机应该看着立方体的中心。我想我成功地做了一个等距投影,但我不知道如何把相机对准中心。

这是我尝试过的:

<!DOCTYPE html>
 <html>
 <head>
<meta charset=utf-8>
<title>Cube</title>
<style>
</style>
</head>
<body>
<script src="js/three.min.js"></script>
<script>
        var scene = new THREE.Scene();
        var camera = new THREE.OrthographicCamera(-3,3,3,-3, 0, 100);

        var ambientLight = new THREE.AmbientLight(0x222222);
        scene.add(ambientLight);
        var light = new THREE.PointLight( 0xffffff );
        light.position.set(-10, 10, 10);
        scene.add(light);
        var renderer = new THREE.WebGLRenderer();
        renderer.setSize(800,800);
        document.body.appendChild(renderer.domElement);
        var geometry = new THREE.BoxGeometry(1,1,1);
        var cube = new THREE.Mesh(geometry, new THREE.MeshLambertMaterial( { color: 0x00ffff }));
        scene.add( cube );
  function render() { //this is to be used for animation later
  requestAnimationFrame(render);
        camera.position.x=1;
        camera.position.y=1;
        camera.position.z=1;
        camera.lookAt(new THREE.Vector3(0,0,0));
        renderer.render( scene, camera);
        }
 render();
</script>

这就是lookAt的作用。在你的例子中,立方体的位置等于它的中心,所以答案是:

camera.lookAt( cube.position );

http://jsfiddle.net/L0rdzbej/135/