【发布时间】:2019-03-29 14:36:19
【问题描述】:
我正在制作一个three.js 场景,它在指向北、东、南和西的两条线的中心渲染一个立方体。我正在使用三个 OrbitControls 进行交互,并使用一些自定义代码(请参见下面的链接)来平滑地将相机绕原点移动到预定义的位置(N、E、S、W 和顶部)。
这很好用,除了少数情况:
通过单击“北”按钮然后单击“南”按钮从北到南进行 Lerp(从东到西的问题相同)。矢量 A 和 B 之间的 Lerping 失败,导致相机只是跳转到矢量 B。
来自自定义轮换的 Lerp,例如通过单击“顶部”按钮,从 NW 到自上而下的视图。相机正确地调整到 y 轴上的向量,但由于它的旋转不受控制,所以当 lerping 完成时,它会捕捉到最终的相机旋转。
有没有更好的方法来处理相机在从当前向量到目标向量的圆形路径上围绕原点的平滑过渡?这也适用于上述情况 1 和 2。
这里是a link to my CodePen three.js scene so far。单击位置按钮后,我存储目标向量并使用以下行向目标移动
camera.position.lerp(cameraTarget, cameraLerpAlpha);
【问题讨论】:
标签: javascript three.js