Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript three.js立方体调整大小_Javascript_Three.js - Fatal编程技术网

Javascript three.js立方体调整大小

Javascript three.js立方体调整大小,javascript,three.js,Javascript,Three.js,我的three.js代码如下: cube = new THREE.Mesh(new THREE.CubeGeometry(200, 200, 200, 1, 1, 1, materials), new THREE.MeshFaceMaterial()); cube.position.y = 150; cube.position.x = 0; scene.add(cube); 但是当我渲染我的立方体时,这个立方体的大小总是不同的。我试着更好地解释。 每次我调整浏览器大小并刷新页面时,多维数据集的

我的three.js代码如下:

cube = new THREE.Mesh(new THREE.CubeGeometry(200, 200, 200, 1, 1, 1, materials), new THREE.MeshFaceMaterial());
cube.position.y = 150;
cube.position.x = 0;
scene.add(cube);
但是当我渲染我的立方体时,这个立方体的大小总是不同的。我试着更好地解释。
每次我调整浏览器大小并刷新页面时,多维数据集的大小都不同。是否可以将多维数据集大小设置为固定?同样,如果窗口调整大小

可以为渲染器设置固定大小:

renderer.setSize(WIDTH, HEIGHT);
举一个简单的例子:


还要检查您的代码是否正在处理窗口大小调整事件。

我知道这个问题已经得到了回答,但为了子孙后代的利益,我想提交一些东西,以及那些遵循我们步骤的人的沮丧程度

Three.js使用摄影机对象提供3d场景的视图。我主要是使用透视相机(而不是正交相机,很抱歉,如果您正在使用正交相机,此时无法帮助您),我偶然发现了您正在讨论的问题的解决方案。透视图在创建时采用某些参数:

  • fov(确定垂直视野的角度
  • 纵横比(宽度/高度值)
    function onResize()
            {
                var width, height;
                width = window.innerWidth; // for example
                height = window.innerHeight; // for example                
    
                //First update the camera's aspect ratio: width / height
                camera.aspect = width/height;
    
                //Whenever you make a change to the camera, 
                //you must update for your changes to take effect
                camera.updateProjectionMatrix();
    
                //Here we reset the size of the window to the new height
                renderer.setSize(width, height);
            }
    
    jQuery(window).resize(onResize);
    
    window.onresize = onResize;