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 Threejs网格缩放到渲染器且不保留纵横比_Javascript_Three.js - Fatal编程技术网

Javascript Threejs网格缩放到渲染器且不保留纵横比

Javascript Threejs网格缩放到渲染器且不保留纵横比,javascript,three.js,Javascript,Three.js,我正在使用来自ThreeJSGithub的插件 这是我的代码片段 this.loadSTL = function(scene, stlFile){ var loader = new THREE.STLLoader(); loader.addEventListener('load', function(geometry, materials){ var geometry = geometry.content; var material = n

我正在使用来自ThreeJSGithub的插件

这是我的代码片段

this.loadSTL = function(scene, stlFile){
      var loader = new THREE.STLLoader();
      loader.addEventListener('load', function(geometry, materials){
        var geometry = geometry.content;
        var material = new THREE.MeshPhongMaterial({ambient: 0xff5533, color: 0xff5533, specular: 0x111111, shininess: 200});
        var mesh = new THREE.Mesh(geometry, material);

        mesh.position.set(0, -0.9, 0);
        mesh.rotation.set(0, 0, 0);
        mesh.scale.set( 0.012, 0.012, 0.012);

        scene.add(mesh);
      });
      loader.load(stlFile);
    }

这里的问题是,我通过stl文件加载的对象根据窗口分辨率增加/减少高度。我们需要设置什么来保持网格的宽度/高度不变,并且不随屏幕/窗口分辨率变化

也许您应该处理窗口大小调整事件并执行以下操作:

function OnResize ()
{
    camera.aspect = canvas.width / canvas.height;
    camera.updateProjectionMatrix ();
    renderer.setSize (canvas.width, canvas.height);
};

设置
camera.aspect=1
解决了问题。正确的解决方案是设置

camera.aspect = $container.width/$container.height