繁体   English   中英

仅有z.x轴旋转的Three.js TrackballControls.js

[英]Three.js TrackballControls.js rotating in z & x axis only

我试图在三个中设置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行到假。 取消注释

_this.object.up.applyQuaternion( quaternion );

并增加了

this.dynamicDampingFactor = 0.2;

到0.8。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM