Javascript Threejs网格缩放到渲染器且不保留纵横比
我正在使用来自ThreeJSGithub的插件 这是我的代码片段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
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