ThreeJS:如何独立于旋转将相机向左或向右移动?
ThreeJS: How to move the camera to the left or right independent of its rotation?
我有一个 ThreeJS 设置,相机可以在 3D 世界中移动,移动时它会改变 lookAt
多次。所以让我们假设 camera.getWorldDirection()
总是或多或少是随机的。
现在我需要相机相对于 camera.getWorldDirection()
向左/向右/向上/向下移动。
你 不能 只使用 camera.position.x += 1
之类的东西,因为它只适用于 Vector3(0, 0, -1)
的世界方向。如果世界方向改变为例如(1, -1, 0)
,向右移动相机确实需要改变 X 轴和 Z 轴。
我看过四元数和 4D 矩阵,但我无法理解它们。如果有人能帮助我,那就太好了。
我在一个未被接受的答案中找到了答案。
你必须使用camera.translateX()
和类似的函数来改变它的局部位置。这样你就可以随时操纵 camera.position
来移动它并使用 translate
函数来添加相对于相机视角的偏移量。
我有一个 ThreeJS 设置,相机可以在 3D 世界中移动,移动时它会改变 lookAt
多次。所以让我们假设 camera.getWorldDirection()
总是或多或少是随机的。
现在我需要相机相对于 camera.getWorldDirection()
向左/向右/向上/向下移动。
你 不能 只使用 camera.position.x += 1
之类的东西,因为它只适用于 Vector3(0, 0, -1)
的世界方向。如果世界方向改变为例如(1, -1, 0)
,向右移动相机确实需要改变 X 轴和 Z 轴。
我看过四元数和 4D 矩阵,但我无法理解它们。如果有人能帮助我,那就太好了。
我在一个未被接受的答案中找到了答案
你必须使用camera.translateX()
和类似的函数来改变它的局部位置。这样你就可以随时操纵 camera.position
来移动它并使用 translate
函数来添加相对于相机视角的偏移量。