Three.js和OrbitControls.js-与地面平行的摇摄相机(例如Google Earth)

标签 three.js

我正在使用OrbitControls.js进行简单的Three.js演示。

我想更改OrbitControls中的平移行为。当前,平移相机时,它将在垂直于观看方向的平面中移动相机。我想对其进行更改,以使相机与地面保持恒定距离并平行于地面移动。 Google地球使用类似的控件设置。

编辑:我应该首先提到这个细节,但是我也希望您单击并开始拖动的点在整个拖动过程中都直接位于光标下方。鼠标移动与用户期望在屏幕上发生的 Action 之间需要牢固的联系。否则,当我尝试在场景中移动时,感觉好像在“滑倒”。

有人可以给我关于如何完成此操作的高级说明(有或没有OrbitControls.js)?

最佳答案

编辑:OrbitControls现在支持平行于“地平面”的平移,这是默认设置。

要平移到屏幕空间(旧行为),请设置:

controls.screenSpacePanning = true;

还可以使用MapControls,它具有类似于Google Earth的API。

three.js r.94

关于Three.js和OrbitControls.js-与地面平行的摇摄相机(例如Google Earth),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26185074/

相关文章:

javascript - 如何检测立方体的哪一侧被单击

javascript - 使用 JavaScript 和 css 弹出

javascript - 如何使用 Three.js 定位 Blender 动画导出

javascript - 更改点云数据中特定点的不透明度

three.js - 在three.js中将子节点/对象附加到Object3D

javascript - THREE.js 光线转换对单个> 500k 多边形(面)对象非常慢,线与地球相交

javascript - 有没有办法在 Three.js 中有透明的视频背景?

javascript - 在 Three.js 中,网格的 renderDepth 似乎被忽略

javascript - 如何在不设置 z 坐标的情况下给 Three.js 对象一个 z-index?

javascript - Three.js 的 CSS3DRenderer 可以渲染网格吗?