Three.js只在z&x轴上旋转的TrackballControls.js

问题描述:

我试图在三个j中设置TracballControls只能在两个轴上移动,只能平移和倾斜,不能滚动。有没有可能做到这一点? 我的代码:http://360.art.pl/experimental/2/ 鼠标移动的行为应该是这样的:http://360.art.pl/experimental/1/Three.js只在z&x轴上旋转的TrackballControls.js

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

看在你TrackballControl.js文件和更改线路148

来自:

_this.object.up.applyQuaternion(quaternion); 

到:

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

//更新 只有与旧版本

+1

这似乎不起作用。立方体在同一个3轴上旋转,但现在似乎出现了万向节锁定问题。 – 2014-04-02 03:59:04

我意识到这是很老,但它仍然是主要的结果在谷歌,我将描述我是如何做这项工作的工作。

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

注释掉线(〜行200)

_this.object.up.applyQuaternion(quaternion); 

如果你喜欢,你可以锁定相机的旋转矢量为好,加上无论是

_this.object.rotation.z = 0; 

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

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

我只是改变了可变

this.noPan 
上线26

为false。 取消注释

_this.object.up.applyQuaternion(quaternion); 

,并增加了

this.dynamicDampingFactor = 0.2; 

0.8。