首页 文章

Three.js 沿自己的特定轴设置摄像机(或 Object3D)旋转角度

提问于
浏览
0

我正在使用 Three.js。我有一个相机,可以通过以下方式移动和旋转:

  • camera.translateX():移动 left/right

  • camera.translateZ():移动 forward/backward

  • camera.rotateY():旋转 left/right

  • camera.rotateX():旋转 up/down

在一些运动和旋转之后,我想重置相机的 up/down 旋转(i.e.它既不会看天空也不会看地板)以便水平观看,而则保持当前的 left/right 旋转和位置

我的问题是如何才能获得camera.rotateX()的正确值?或者有没有办法指定它应该旋转的确切角度?

我试过了camera.quaternion.setFromAxisAngle(),但它似乎不是我想要的,因为它也是 change/set 相机的 left/right 旋转。

1 回答

  • 0

    您的相机旋转发生在其自己的坐标系中,而不是在世界坐标系中。这就是为什么****_ _ **你相对于你的位置左右旋转,无论它是什么。您的当前方向由欧拉角表示,这是三个顺序旋转。在您的每个旋转轴旋转后。

    您可以尝试通过设置camera.rotation.order =“YXZ”来更改旋转顺序;然后设置camera.rotation.y = 0

    也知道向量a = camera.positionb = camera.getWorldDirection()你可以使用camera.lookAt(b.x,a.y,b.z)

    希望这可以帮助。还有一些可以提供帮助的工作示例:FirstPersonControlsPointerLockControls

相关问题