【发布时间】:2021-11-10 18:01:27
【问题描述】:
我设置了一个 ThreeJS,相机可以在 3D 世界中移动,并且在移动时它会多次更改其 lookAt。所以让我们假设camera.getWorldDirection() 总是或多或少是随机的。
现在我需要相机相对于camera.getWorldDirection() 准确地向左/向右/向上/向下移动。
你不能只使用camera.position.x += 1 之类的东西,因为这仅适用于Vector3(0, 0, -1) 的世界方向。如果世界方向更改为例如(1, -1, 0),向右移动相机确实需要改变X轴和Z轴。
我查看了四元数和 4D 矩阵,但我的猴脑无法绕过它们。如果有人可以帮助我,那就太好了。
【问题讨论】:
-
看看这是否有帮助:stackoverflow.com/a/38341191/1461008
-
@WestLangley 感谢您的提示,但不幸的是,由于相机的旋转,它无法正常工作。例如。如果我将相机顺时针旋转 90 度,沿 Z 轴“向前”移动将导致相对于相机视角向左移动。
-
我在上面发布的链接中的解决方案与您在下面的答案中发布的链接中的解决方案有何不同?
标签: javascript three.js