Three.js OrbitControls.js缩放比例不是线性的
Three.js OrbitControls.js zoom scaling not linear
首先,这就是我所说的库:https://github.com/mrdoob/three.js/blob/dev/examples/js/controls/OrbitControls.js
我的问题如下:我不知道缩放的确切定义在哪里。它按相机和原点之间的距离缩放,但我似乎找不到它。
我已经知道它不可能是第31-33行或getZoomScale()-函数(第276行)以及其他许多行(对于不同的事件)
有没有人研究过它,并猜测它的定义在哪里
或者如何将缩放比例缩放到设定值,而不是现在的缩放比例?
在3D开发中使用相机(PerspectiveCamera)来定义距离、角度、视野等。这会在渲染时产生由灯光、网格、精灵等组成的场景的2D表示。它具有存储在三维矢量、矩阵或四元数中的位置和旋转。
控件("动态观察控制"示例,misc_Controls_Orbit.html)通过将鼠标滚轮/移动等用户事件映射到新位置和旋转来围绕摄影机移动。在轨道控制的情况下,您可以将相机视为绑定到一个线程,该线程迫使相机在移动时始终观察中心点。给定一定的半径,摄影机在球体上移动。
在轨道样本的第74行中,相机被传递给OrbitControl,在OrbitControls.js的第16行中,您可以看到this.object是根据变量/属性传递给它的相机,这些变量/属性可以设置为限制/启用事物。在第81行(this.zoom0=this.object.soom;)中,您可以看到相机具有缩放功能,控件保存该值以用于重置。更新功能包含根据输入(鼠标、触摸、指针)重新定位相机的代码。(直线156159球面半径)
您可以将相机设置为初始位置和旋转(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链接(仅供参考):主页
- 可以't让我的if语句处理js中的html表单输入
- 使用agility.js进行页面布局和合成
- 使用Clipboard.js复制span文本
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 强制模板刷新ember.js
- 如何编写HTML输入的JS内联
- Angular JS IE9 Hashbang url rewriting
- 使用JS将数组转换为json对象
- Node.js v6.2.0类扩展不是函数错误
- 当js函数's已执行
- 要求未定义JS回调参数
- 在自定义mean.io包中使用angular-chart.js作为依赖项
- 无法在数据endVal中设置值=“”;{{ucount}}”;使用Angular JS的CountUp
- 如何从Java/scala调用js美化程序
- 如何在d3.js中线性插值transform属性
- 在 d3.js 中,线性刻度/轴的刻度间隔为 2^(10*c) 而不是 10^c
- 如何阻止D3.js从线性多边形创建无限区域
- js线性刻度[0,1]与特定数量的字符串刻度值[a,B,C,…]
- 我们如何更改d3.js折线图中线性刻度生成的刻度值
- Three.js OrbitControls.js缩放比例不是线性的