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