Three.js TrackballControls.js 只在z轴和x轴旋转

4
3个回答

0

我刚刚改变了这个变量

this.noPan

将第26行改为false。 取消注释

_this.object.up.applyQuaternion( quaternion );

并增加了

this.dynamicDampingFactor = 0.2;

到0.8。


0
我知道这篇文章很老了,但因为它仍然是谷歌搜索的主要结果,所以我将描述如何使它工作。

为了防止旋转(锁定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)的移动引起的。


0

我觉得这会对你有帮助:(解决了我的问题)

在你的TrackballControl.js文件中查找并修改第148行

从:

_this.object.up.applyQuaternion( quaternion );

to:

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

//更新 只适用于较旧版本


1
这似乎不起作用。立方体在同一3轴上旋转,但现在似乎存在万向锁问题。 - Jude Osborn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接