我正在尝试获得无限缩放功能, 在查看以下three.js示例时: http://threejs.org/examples/misc_controls_orbit.html
在接近目标矢量时,变焦系数减小并减小,直到它几乎不起作用,对于最终用户来说它看起来像是卡住了。平移不会真正起作用,并且为了缩小用户需要使用鼠标滚轮的年龄。
有没有办法获得无限缩放功能? 感谢。
答案 0 :(得分:1)
如上所述它是无限缩放(但是它无限缩放到场景中心的目标,所以它永远不会通过目标,因此永远不会超出场景的中心),你可以做一些改变控件对象,以呈现所需的效果(如果我正确理解你)。
您可以做的一个小改动是将目标位置从场景中心更改为场景的另一端,假设相机的远参数设置为1000,我们可以尝试将目标的z位置设置为-1000 in你的init()函数是这样的:
controls.target = new THREE.Vector3(0,0,-1000);
这是一个工作小提琴:http://jsfiddle.net/6gn7k0m4/
在该示例中,您将放大场景并在达到-1000时减速。另一种方法可能是更改dollyIn和dollyOut方法,以便不是无限地靠近目标,而是改变相机的z索引,这样当你缩放目标时相机仍将围绕中心旋转,你可以做这样的事
controls.dollyOut = function(){
this.object.position.z -= 100;
}
controls.dollyIn = function(){
this.object.position.z += 100;
}
这个例子的工作小提琴:http://jsfiddle.net/6gn7k0m4/1/