Three.js TrackballControls.js在z中旋转;仅x轴

Three.js TrackballControls.js rotating in z & x axis only

本文关键字:js 旋转 TrackballControls Three      更新时间:2024-02-18

I,m试图在threejs中设置TracballControls,使其仅在两轴上移动,仅平移和倾斜,不滚动。有什么可能成功吗?我的代码:http://360.art.pl/experimental/2/鼠标移动应如下所示:http://360.art.pl/experimental/1/

我认为这将帮助您:(解决我的问题)

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

来自:

_this.object.up.applyQuaternion( quaternion );

至:

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

//更新仅适用于旧版本的

我意识到这已经很旧了,但由于它仍然是谷歌的主要结果,我将描述我是如何做到这一点的。

若要防止滚动(锁定z轴),可以防止rotateCamera()更改相机的上方向矢量。

注释行(~行200)

_this.object.up.applyQuaternion(quaternion);

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

_this.object.rotation.z = 0; 

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

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

我刚刚更改了变量

this.noPan

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

_this.object.up.applyQuaternion( quaternion );

并增加

this.dynamicDampingFactor = 0.2;

至0.8。