Javascript orbitcontrols.js:如何放大/缩小

Javascript orbitcontrols.js:如何放大/缩小,javascript,three.js,Javascript,Three.js,使用orbitcontrols.js(使用THREE.js),我希望在代码中实现与旋转鼠标滚轮相同的效果。例如,我想调用camera.zoomIn()之类的函数,让它向目标移动一段设定的距离。有人知道怎么做吗?通过查看源代码,您可以在轨道控制对象上调用.dollyIn(dollyScale)和.dollyOut(dollyScale) 编辑:这些不是公共方法;不过,您可以通过编辑OrbitalControls.js来访问它们 我添加了this.dIn=dollyIn到THREE.OrbitCon

使用orbitcontrols.js(使用THREE.js),我希望在代码中实现与旋转鼠标滚轮相同的效果。例如,我想调用camera.zoomIn()之类的函数,让它向目标移动一段设定的距离。有人知道怎么做吗?

通过查看源代码,您可以在
轨道控制
对象上调用
.dollyIn(dollyScale)
.dollyOut(dollyScale)

编辑:这些不是公共方法;不过,您可以通过编辑
OrbitalControls.js
来访问它们


我添加了
this.dIn=dollyIn
THREE.OrbitControls
函数,我现在可以通过调用
controls.dIn(1.05)来放大;控件更新()从外部。

至少在简单的情况下,您可以更改相机的位置(例如,将
x
y
z
乘以一个系数),从而自动更新
轨道控制

带有
滑块的示例:

zoomer.addEventListener('input', function(e) {
    var zoomDistance = Number(zoomer.value),
        currDistance = camera.position.length(),
        factor = zoomDistance/currDistance;

    camera.position.x *= factor;
    camera.position.y *= factor;
    camera.position.z *= factor;
});

谢谢Chris,你的意思是这个var controls=新的三个.OrbitControls(摄影机、渲染器.doElement);后跟类似于以下控件的内容。dollyIn(.5);正确的?我得到一个对象不支持属性或方法错误。我尝试了我想象中的每一个组合,包括直接呼叫dollyIn,因为它不是OrbitControls对象的成员,我总是得到相同的结果。您好,先生,您的回答太棒了。非常感谢。