Javascript 始终在three.js中向上旋转对象
我不擅长三维计算,我需要帮助 我有一个地球,在我的场景中是一个球体,我使用OribitControl旋转它,实际上OribitControl旋转相机 我需要一个函数,可以让地球旋转起来,不管相机的位置如何 问题是,我现在的轮换是:Javascript 始终在three.js中向上旋转对象,javascript,three.js,rotation,Javascript,Three.js,Rotation,我不擅长三维计算,我需要帮助 我有一个地球,在我的场景中是一个球体,我使用OribitControl旋转它,实际上OribitControl旋转相机 我需要一个函数,可以让地球旋转起来,不管相机的位置如何 问题是,我现在的轮换是: earth.rotation.x -= rad 如果相机处于初始位置,这会使地球向上旋转,但如果相机旋转180度,此旋转up功能实际上会使地球向下旋转 如何实现这个功能?谢谢我自己找到了一个解决方案: function rotateUp (rad) { cons
earth.rotation.x -= rad
如果相机处于初始位置,这会使地球向上旋转,但如果相机旋转180度,此旋转up功能实际上会使地球向下旋转
如何实现这个功能?谢谢我自己找到了一个解决方案:
function rotateUp (rad) {
const v = new THREE.Vector3()
v.setFromMatrixColumn(camera.matrix, 0 )
v.multiplyScalar(-rad)
earth.rotation.x += v.x
}