2016-02-26 188 views
2

我正在創建three.js應用程序。我已經加載了我的STL對象。我用過'OrbitControls'。當我用鼠標的中間滾動按鈕開始縮放我的對象時,它會在某個點上斷開。three.js - 如何限制縮放以使對象不會因攝像頭而中斷

我的相機和控制代碼如下:

camera = new THREE.PerspectiveCamera(55, window.innerWidth/window.innerHeight, 1, 15); 
       //camera.position.set(3, 0.15, 3); 
       // position and point the camera to the center of the scene 
       camera.position.x = -3; 
       camera.position.y = 4; 
       camera.position.z = 5; 
       camera.lookAt(new THREE.Vector3(0, 0, 0)); 

controls = new THREE.OrbitControls(camera, renderer.domElement ); 
       controls.damping = 0.2; 
       //controls.minZoom = 0; 
       //    controls.maxZoom = 1; 
       //controls .noZoom = true; 

       controls.addEventListener('change', render); 

我試圖與對照minZoommaxZoom但它不工作。

任何人都可以請告訴我,我應該如何限制縮放,以便超出特定點我的對象不會中斷?

+0

您可以將攝像機的'near'平面設置爲0.1而不是1。 – gaitat

回答

9

如果您使用的是有一個OrbitControlsPerspectiveCamera,您可以限制攝像機的距離,像這樣:

controls = new THREE.OrbitControls(camera, renderer.domElement); 
controls.minDistance = 10; 
controls.maxDistance = 50; 

看看在其他設置的源代碼OrbitControls.js

three.js r.74

+0

它工作正常。非常感謝:) – kiran

+0

我們可以在軌跡球控制系統中完成它,或者我們可以一起使用軌跡球控制和軌道控制 –

+0

做orthographicTrackballControls有minDistance和maxDistance屬性嗎? –