首先,这是我正在谈论的图书馆:
https://github.com/mrdoob/three.js/blob/dev/examples/js/controls/OrbitControls.js
我的问题如下:
我无法弄清楚缩放的确切位置。它缩放到相机和原点之间的距离,但我似乎无法找到它
我已经知道它不能是31-33行或者getZoomScale() - 函数(第276行)以及其他许多(对于不同的事件)。
有没有人使用它,并猜测定义是什么?
或者如何将缩放比例缩放到设定值而不是现在的比例?
答案 0 :(得分:1)
在3D开发中使用相机(PerspectiveCamera)来定义距离,角度,视野等。这将导致场景的2D表示,包括灯光,网格,精灵等。渲染时它具有存储在3D矢量,矩阵或四元数中的位置和旋转。
控件(Orbit Control example,misc_controls_orbit.html)通过将用户事件(如鼠标滚轮/移动)映射到新位置和旋转来移动相机。在轨道控制的情况下,您可以将摄像机视为绑定到线程,该线程强制它在移动时始终查看中心点。给定一定的半径,相机在球体上移动。
在轨道样本的第74行中,摄像机被传递到OrbitControl,在OrbitControls.js的第16行,你会看到this.object是传递给它的摄像机,它遵循可以设置为限制/启用的变量/属性的东西。在第81行(this.zoom0 = this.object.zoom;)中,您会看到相机具有缩放,并且控件会保存该值以进行重置。更新功能包含根据输入(鼠标,触摸,指针)重新定位相机的代码。 (156号线,159号球形。半径)
您可以将相机设置为初始位置和旋转(camera.lookat):
camera = new THREE.PerspectiveCamera(60, window.innerWidth / window.innerHeight, 0.1, 1000);
camera.position.x = 0.1;
camera.position.y = 3.5;
camera.position.z = 6;
camera.lookAt(new THREE.Vector3(0, 0, 0));
controls = new THREE.OrbitControls(camera, renderer.domElement);
GitHub Wiki链接(仅供参考):Home