4

我试图在 threejs 中设置 TracballControls 以仅在两个轴上移动,仅平移和倾斜,没有滚动。有没有可能实现它?我的代码:http: //360.art.pl/experimental/2/ 鼠标移动应该是这样的:http: //360.art.pl/experimental/1/

4

3 回答 3

0

我认为这会帮助你:(解决了我的问题)

查看您的 TrackballControl.js 文件并更改第 148 行

从:

_this.object.up.applyQuaternion( quaternion );

至:

_this.object.up.applyQuaternion( new THREE.Vector4(0,0,0,1) );

//更新仅适用于旧版本

于 2013-06-26T22:48:52.377 回答
0

我意识到这已经很老了,但由于它仍然是谷歌的主要结果,我将描述我是如何完成这项工作的。

为了防止滚动(锁定 z 轴),您可以防止 rotateCamera() 更改相机的 Up 向量。

注释掉该行(~第 200 行)

_this.object.up.applyQuaternion(quaternion);

如果你喜欢你也可以锁定相机的旋转矢量,添加

_this.object.rotation.z = 0; 

或者

_this.object.rotation.set(0, 0, 0);

到函数结束。但是在实践中,我发现这并没有太大区别,因为大部分旋转是由相机相对于它的 lookAt 目标(trackballControls.js 文件中的_this.target)的移动引起的。

于 2016-06-22T23:08:08.447 回答
0

我只是改变了变量

this.noPan

在第 26 行设置为假。未注释

_this.object.up.applyQuaternion( quaternion );

并增加了

this.dynamicDampingFactor = 0.2;

到 0.8。

于 2017-08-22T08:51:39.193 回答