调整窗口大小但保持缩放级别

时间:2016-10-04 17:38:15

标签: javascript three.js

我正在使用three.js并了解相机和渲染工作的方式。目前我正在构建拖动和调整three.js绘制的画布的能力。

我希望能够拖动并调整画布大小,而不会让场景变大。因此,更大的画布会显示更多场景,而不是更大的场景。

1 个答案:

答案 0 :(得分:1)

如果你仍然在寻找一个解决方案,那么这就是你想要实现的目标:http://jsfiddle.net/psyrendust/8nbpehj3/(我没有这个小提琴)

您需要使用视野:

// remember these initial values
var tanFOV = Math.tan( ( ( Math.PI / 180 ) * camera.fov / 2 ) );
var windowHeight = window.innerHeight;

// Event Listeners
window.addEventListener( 'resize', onWindowResize, false );

function onWindowResize( event ) {

    camera.aspect = window.innerWidth / window.innerHeight;

    // adjust the FOV
    camera.fov = ( 360 / Math.PI ) * Math.atan( tanFOV * ( window.innerHeight / windowHeight ) );

    camera.updateProjectionMatrix();
    camera.lookAt( scene.position );

    renderer.setSize( window.innerWidth, window.innerHeight );
    renderer.render( scene, camera );

}

希望这有帮助。