三.js透视相机+轨道控制如何获得当前的“缩放”级别?

den*_*.ts 5 javascript zooming perspectivecamera three.js

我尝试在 Three.js 场景中检测当前的缩放级别(或类似的东西)。我的意思是通过鼠标滚轮动作应用的“缩放”(小车),例如:简单场景包含:透视相机 + 轨道控制 + 对象

1: `<= 测试在这里

controls = new THREE.OrbitControls( camera );
controls.dollyOut = function(){    }
controls.dollyIn = function(){    }

controls.addEventListener('change', renderlog); ....` 
Run Code Online (Sandbox Code Playgroud)

TNX

Fer*_*big 9

当您将 aPerspectiveCamera与 结合使用时OrbitControls,您必须意识到“缩放”不像正交相机那样是一个变量。相反,“缩放”是通过将相机靠近目标来完成的。

这意味着您可以通过计算目标与相机位置之间的距离来获得缩放距离。

var zoom = controls.target.distanceTo( controls.object.position )
Run Code Online (Sandbox Code Playgroud)

  • 仅使用正交投影时,它会改变投影,使用透视相机时,它会改变位置 (3认同)