使用orbitcontrols.js(使用THREE.js),我希望在代码中实现与旋转鼠标滚轮相同的效果。例如,我想调用camera.zoomIn()之类的东西,让它向目标移动一定距离。有谁知道怎么做?
答案 0 :(得分:2)
通过查看源代码,您可以在 .dollyIn(dollyScale)
对象上调用.dollyOut(dollyScale)
和OrbitalControls
。
编辑:这些不是公共方法;可以通过编辑OrbitalControls.js
来访问它们。
我已将this.dIn = dollyIn;
添加到THREE.OrbitControls
功能,现在我可以通过从外部拨打controls.dIn(1.05); controls.update();
来放大。
答案 1 :(得分:1)
至少在简单的情况下,您可以更改摄像机的位置(例如,将x
,y
和z
乘以一个系数),自动更新OrbitControls
。
带有<input type="range">
滑块的示例:
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;
});