Изменить размер окна, но сохранить уровень масштабирования

#javascript #three.js

#javascript #three.js

Вопрос:

Я работаю с three.js и получить представление о том, как работают камера и визуализация. В настоящее время я создаю возможность перетаскивать и изменять размер холста, который three.js тоже рисует.

я хочу иметь возможность перетаскивать и изменять размер холста без увеличения сцены. Таким образом, на холсте большего размера отображается больше сцены, а не сцена большего размера.

Ответ №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 );

}
  

Надеюсь, это поможет.