【问题标题】:always rotate an object up in three.js总是在 three.js 中向上旋转一个对象
【发布时间】:2018-10-24 06:01:58
【问题描述】:

我不擅长 3d 计算,在这里需要帮助。

我有一个地球,它在我的场景中是一个球体,我正在使用 OribitControl 来“旋转”它(实际上是 OribitControl 旋转相机)。

我需要一个函数,比如rotateUp(rad) 让地球向上旋转,不管相机的位置是什么。

问题是,我现在的 rotateUp 是:

earth.rotation.x -= rad

如果相机在初始位置,这会使地球向上旋转,但如果相机旋转 180 度,这个rotateUp 函数实际上会向下旋转地球。

如何实现这个功能?谢谢

【问题讨论】:

    标签: javascript three.js rotation


    【解决方案1】:

    我自己找到了解决方案:

    function rotateUp (rad) {
      const v = new THREE.Vector3()
      v.setFromMatrixColumn(camera.matrix, 0 )
      v.multiplyScalar(-rad)
      earth.rotation.x += v.x
    }
    

    【讨论】:

      猜你喜欢
      • 2014-10-24
      • 1970-01-01
      • 1970-01-01
      • 2015-02-06
      • 1970-01-01
      • 2013-01-27
      • 2013-08-01
      • 1970-01-01
      • 2012-06-19
      相关资源
      最近更新 更多