我正在尝试在threejs中设置TracballControls,使其仅在两个轴上移动,即仅进行平移和倾斜操作,而不进行旋转。是否有可能实现这一点? 我的代码:http://360.art.pl/experimental/2/ 鼠标移动应该像这样:http://360.art.pl/experimental/1/
我正在尝试在threejs中设置TracballControls,使其仅在两个轴上移动,即仅进行平移和倾斜操作,而不进行旋转。是否有可能实现这一点? 我的代码:http://360.art.pl/experimental/2/ 鼠标移动应该像这样:http://360.art.pl/experimental/1/
我刚刚改变了这个变量
this.noPan
将第26行改为false。 取消注释
_this.object.up.applyQuaternion( quaternion );
并增加了
this.dynamicDampingFactor = 0.2;
到0.8。
为了防止旋转(锁定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)的移动引起的。
我觉得这会对你有帮助:(解决了我的问题)
在你的TrackballControl.js文件中查找并修改第148行
从:
_this.object.up.applyQuaternion( quaternion );
to:
_this.object.up.applyQuaternion( new THREE.Vector4(0,0,0,1) );
//更新 只适用于较旧版本