Javascript 关于TrackballControls.js旋转的第70版

Javascript 关于TrackballControls.js旋转的第70版,javascript,rotation,three.js,Javascript,Rotation,Three.js,我在github中的问题-- 我知道TrackballControls.js可以用来控制相机,而不是模型。 但是我想用这个TrackballControls.js来旋转模型。当我用鼠标控制模型时,我可以平移、缩放、旋转。当我旋转模型时,我感觉不到旋转的相机,但似乎旋转了模型本身。我需要一个鼠标事件 方法: controls.target = model.position; or controls.target.copy( model.position ) 他们没有用 如lao3d.com查看

我在github中的问题-- 我知道TrackballControls.js可以用来控制相机,而不是模型。 但是我想用这个TrackballControls.js来旋转模型。当我用鼠标控制模型时,我可以平移、缩放、旋转。当我旋转模型时,我感觉不到旋转的相机,但似乎旋转了模型本身。我需要一个鼠标事件

方法:

controls.target = model.position; 
or controls.target.copy( model.position )

他们没有用

如lao3d.com查看器中所示,您希望绕世界Y轴和X轴旋转对象,而不受其平移的影响

所以我举了一个小例子

它考虑到相机可能会旋转。 因此,使用相机的四元数创建其当前的上方向和右方向向量,以获得上方向和视图向量,然后计算其叉积

    var view = new THREE.Vector3(0, 0, -1);
    view.applyQuaternion(camera.quaternion);
    var cross = new THREE.Vector3();
    cross.crossVectors(view, camera.up);
你可以把视图想象成进入屏幕的-Z,+Y是摄像机的上方向向量,从摄像机的旋转方向向上,十字是-Z和+Y的叉积,因此指向右侧


使用这些轴设置,您可以围绕它们旋转对象。

可能会有所帮助。谢谢您的回答,但我想要的效果可以看到,操作模型、平移、旋转、缩放;旋转后平移,你可以发现,它是不同的TrackballControls.js。谢谢你再次看到。为此,您必须编写自己的ObjectController。