我试图在 threejs 中设置 TracballControls 以仅在两个轴上移动,仅平移和倾斜,没有滚动。有没有可能实现它?我的代码:http: //360.art.pl/experimental/2/ 鼠标移动应该是这样的:http: //360.art.pl/experimental/1/
问问题
2710 次
3 回答
0
我认为这会帮助你:(解决了我的问题)
查看您的 TrackballControl.js 文件并更改第 148 行
从:
_this.object.up.applyQuaternion( quaternion );
至:
_this.object.up.applyQuaternion( new THREE.Vector4(0,0,0,1) );
//更新仅适用于旧版本
于 2013-06-26T22:48:52.377 回答
0
我意识到这已经很老了,但由于它仍然是谷歌的主要结果,我将描述我是如何完成这项工作的。
为了防止滚动(锁定 z 轴),您可以防止 rotateCamera() 更改相机的 Up 向量。
注释掉该行(~第 200 行)
_this.object.up.applyQuaternion(quaternion);
如果你喜欢你也可以锁定相机的旋转矢量,添加
_this.object.rotation.z = 0;
或者
_this.object.rotation.set(0, 0, 0);
到函数结束。但是在实践中,我发现这并没有太大区别,因为大部分旋转是由相机相对于它的 lookAt 目标(trackballControls.js 文件中的_this.target)的移动引起的。
于 2016-06-22T23:08:08.447 回答
0
我只是改变了变量
this.noPan
在第 26 行设置为假。未注释
_this.object.up.applyQuaternion( quaternion );
并增加了
this.dynamicDampingFactor = 0.2;
到 0.8。
于 2017-08-22T08:51:39.193 回答