在Z&amp ;;中旋转的Three.js TrackballControls.js仅x轴

时间:2012-07-24 09:17:08

标签: javascript three.js

我试图在三个中设置TracballControls,只在两个轴上移动,只有平移和倾斜,没有滚动。有没有可能做到这一点? 我的代码:http://360.art.pl/experimental/2/ 鼠标移动的行为应如下所示:http://360.art.pl/experimental/1/

3 个答案:

答案 0 :(得分:0)

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

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

从:

_this.object.up.applyQuaternion( quaternion );

为:

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

//更新 仅适用于旧版本

答案 1 :(得分:0)

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

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

注释掉这一行(〜第200行)

_this.object.up.applyQuaternion(quaternion);

如果您愿意,也可以锁定相机的旋转矢量,添加

_this.object.rotation.z = 0; 

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

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

答案 2 :(得分:0)

我刚刚更改了变量

this.noPan
第26行

为假。 取消注释

_this.object.up.applyQuaternion( quaternion );

并且增加了

this.dynamicDampingFactor = 0.2;

到0.8。