0
Я пытаюсь угадать, как я могу получить любой объект, покрывающий почти всю ширину и высоту холста.Three.js - Установить положение камеры
<script>
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera(75, window.innerWidth/window.innerHeight, 0.1, 1000);
var renderer = new THREE.WebGLRenderer();
var loader = new THREE.STLLoader();
var mesh;
renderer.setClearColor(0xFFFFFF, 1);
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
loader.addEventListener('load', function (event) {
var geometry = event.content;
var redPhongMaterial = new THREE.MeshPhongMaterial({ color: 0xFFEA32, side: THREE.DoubleSide, ambient:0x000000});
mesh = new THREE.Mesh(geometry, redPhongMaterial)
mesh.castShadow = true;
mesh.receiveShadow = true;
geometry.computeBoundingBox();
var boundingBox = mesh.geometry.boundingBox.clone();
drawBoundingBox(boundingBox, mesh.scale.x, mesh.scale.y, mesh.scale.z);
mesh.translateX (0);
mesh.translateY (0);
mesh.translateZ (0);
scene.add(mesh);
});
loader.addEventListener('progress', function (event) {
document.getElementById('progress').innerHTML = 'Progress: '+event.loaded+'%';
});
loader.addEventListener('error', function (event) {
alert(event.message);
});
loader.load('pet.stl');
camera.position.set(15, -10, 120);
render();
function render() {
requestAnimationFrame(render);
renderer.render(scene, camera);
}
</script>
Я думаю, что я должен установить положение камеры, конечно, x, y и z, но не знаю.
Как это сделать?
Есть несколько ресурсов, чтобы решить вашу проблему: http://stackoverflow.com/questions/14614252/how-to-fit-camera-to-object, http://stackoverflow.com/questions/16462848/three-js-zoom-to-fit-width-of-objects-ignoring-height, http://stackoverflow.com/questions/13572258/three-js-algorithm-to-set-the-camera-so- -все-сцены-шоу, http://stackoverflow.com/questions/2866350/move-camera-to-fit-3d-scene, просто чтобы назвать несколько. – gaitat
@gaitat, что вы делаете, когда у вас есть изображение пейзажа на мобильном телефоне? его нужно обрабатывать по-другому, чем все эти примеры, - который просто даст ответ «высота подгонки» – Ben
, вероятно, вы захотите «подобрать» самую короткую из двух. ширину или высоту вашего устройства. реализация не должна зависеть от типа устройства. когда вы получаете событие изменения размера, вы должны выбрать, что нужно "соответствовать" – gaitat