【发布时间】:2016-09-06 20:14:55
【问题描述】:
我想重新创建 Three.js OrbitControl 移动而不需要单击和拖动,即简单地使相机跟随鼠标移动。
我尝试从头开始重新创建它,但它太费力了,因为问题是相机在三个轴上移动,而不仅仅是两个轴。我很确定有些人以前做过。
具体来说,我希望相机在场景原点周围移动,与它保持相同的距离。
【问题讨论】:
-
为了解决这个问题,您必须了解
OrbitControls的工作原理:它使用目标和相机,本质上是一个向量。OrbitControls的输入在此向量“相机 -> 目标”上进行计算。例如。旋转将采用该向量的当前角度(相对于某个轴),将该角度修改为所需的量,然后将相机移动到向量的新端点并将其朝向目标旋转。向量的长度保持不变,您到目标的距离也是如此。 -
您必须进行一些更改才能使其执行您想要的操作,例如删除点击检测,使 mousemove 和 touchmove 事件始终处于活动状态。另请查看
rotateLeft和rotateUp方法(它们也处理Right 和Down),这些已经用于更改handleMouseMoveRotate中矢量的角度。
标签: javascript three.js perspectivecamera