Three.js 2d 控制 x 和 y 轴无旋转

标签 three.js

你好最近我开始学习three.js。目前我有一个项目,尽管它是一个 3d 环境,但我希望用户仅在 2d(x 轴和 y 轴而不旋转相机)中移动。

有没有像 OrbitControls 这样的three.js的扩展/插件,但具有所需的功能?

最佳答案

你可以用 OrbitControls 做到这一点.相机移动将被限制在垂直于 View 方向的平面上。使用这样的模式:

camera = new THREE.PerspectiveCamera( 40, window.innerWidth / window.innerHeight, 1, 1000 );
camera.position.set( 0, 0, 50 );

controls = new THREE.OrbitControls( camera, renderer.domElement );
controls.target.set( 0, 0, 0 ); // view direction perpendicular to XY-plane
controls.enableRotate = false;
controls.enableZoom = true; // optional

如果您希望鼠标左键控制相机移动,请添加以下内容:
controls.mouseButtons = { PAN: THREE.MOUSE.LEFT, ZOOM: THREE.MOUSE.MIDDLE, ORBIT: THREE.MOUSE.RIGHT }; // swapping left and right buttons

您可以修改触摸控件以匹配,但您必须编辑 OrbitControls源代码这样做。

三.js r.89

关于Three.js 2d 控制 x 和 y 轴无旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28429613/

相关文章:

javascript - 从 Three.js Cube 移除旋转动画

javascript - 三个 Canvas 纹理未映射到整个球体网格

python - 如何立即更新 ipyvolume 形状而无需中间 View

javascript - THREE.js 如何旋转 CSS2D 文本标签

three.js - 两个 JS 是否与三个 JS 相对应

javascript - 使用 THREEJS,我试图在场景中切换雾

three.js - 从四元数获得欧拉旋转?

javascript - 如何在 Three.js 中实现不同摄像机/场景之间的交叉淡入淡出?

javascript - Three.js补间值没有到达目标,而是完成但保持初始值

javascript - 无法将着色器应用于 OBJ