Javascript orbitcontrols.js:如何放大/缩小
使用orbitcontrols.js(使用THREE.js),我希望在代码中实现与旋转鼠标滚轮相同的效果。例如,我想调用camera.zoomIn()之类的函数,让它向目标移动一段设定的距离。有人知道怎么做吗?通过查看源代码,您可以在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
轨道控制
对象上调用.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对象的成员,我总是得到相同的结果。您好,先生,您的回答太棒了。非常感谢。