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

9

我尝试在Three.js场景中检测当前的缩放级别(或类似内容)。

我的意思是通过鼠标滚轮操作应用的“缩放”(平移)。

例如:简单场景包含:透视相机 + 轨道控制器 + 对象。

1: `<= 测试在此处

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

controls.addEventListener('change', renderlog); ....` 

感谢信(TNX)

1
你应该将你的代码放在问题中而不是链接中。编辑时,你可以使用代码片段编辑器。 - PJProudhon
1个回答

15
当您在使用 PerspectiveCameraOrbitControls 结合时,您必须注意,“缩放”不像正交相机那样是一个变量。相反,“缩放”只是将相机靠近目标来完成。
这意味着您可以通过计算目标和相机位置之间的距离来获取缩放距离。
var zoom = controls.target.distanceTo( controls.object.position )

透视相机带有轨道控制,当缩放时不会改变相机的位置,而是改变了投影(我认为)。 - den.ts
但也许你是对的:http://jsfiddle.net/denis_miroshnikov_ts/7teqkspu/92/ 看看控制台。 - den.ts
3
只有在正交投影下,它才会改变投影;而在透视相机下,它会改变位置。 - Ferrybig

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接