【发布时间】:2023-03-24 09:11:01
【问题描述】:
我正在尝试使用threeJS,并且我已经放置了一个相机并正在查看场景的原点(0,0,0)。我想以设定的距离(半径)围绕 y 轴绕一圈移动该相机,同时保持其焦点在原点,但我不知道如何建立方程。目前,我只是在旋转物体本身,但我想旋转相机。这是我移动网格的代码:
function checkRotation(){
if (keyboard.pressed("left")){
mesh.rotation.y += .05;
}
if (keyboard.pressed("right")){
mesh.rotation.y -= .05;
}
}
这里有一些移动相机的例子:
camera.position.x = ??? (一些方程来移动它的 x 位置) camera.position.z = ??? (一些方程来移动它的 z 位置) camera.lookAt(mesh.position);
您能提供的任何帮助都会很棒。谢谢!
【问题讨论】:
-
我不知道javascript或threeJS,但方程很简单:x' = cos(t) x - sin(t) y, y' = sin(t) x + cos( t) 是的。
-
是的 - 我认为我正在努力解决的是时间问题。我需要它根据之前的 x 和 z 值增加,而不是作为时间的函数。我说:
-
timer = Date.now() * 0.0005; camera.position.x = ((Math.cos( timer ) * 5)*5); camera.position.z = ((Math.sin( timer ) * 5)*5); - 但这意味着如果他们停止点击按钮,下次他们点击它时它会跳来跳去
-
你试过我的建议了吗?
标签: javascript math three.js 3d