2014-02-19 5 views
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, но не знаю.

Как это сделать?

+0

Есть несколько ресурсов, чтобы решить вашу проблему: 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

+0

@gaitat, что вы делаете, когда у вас есть изображение пейзажа на мобильном телефоне? его нужно обрабатывать по-другому, чем все эти примеры, - который просто даст ответ «высота подгонки» – Ben

+0

, вероятно, вы захотите «подобрать» самую короткую из двух. ширину или высоту вашего устройства. реализация не должна зависеть от типа устройства. когда вы получаете событие изменения размера, вы должны выбрать, что нужно "соответствовать" – gaitat

ответ

Смежные вопросы