围绕X轴旋转相机(three.js)

Dim*_*ris 1 camera rotation three.js

我正在尝试将相机旋转到场景的X轴.
此时我的代码是这样的:

rotation += 0.05;
camera.position.y = Math.sin(rotation) * 500;
camera.position.z = Math.cos(rotation) * 500;
Run Code Online (Sandbox Code Playgroud)

这使相机移动,但在旋转过程中发生奇怪的事情,或者相机翻转,或者它跳过它正在跟随的假想圆圈的某些部分.

Wes*_*ley 5

您只提供了一段代码,因此我必须对您正在做的事情做出一些假设.

这段代码:

rotation += 0.05;
camera.position.x = 0;
camera.position.y = Math.sin(rotation) * 500;
camera.position.z = Math.cos(rotation) * 500;
camera.lookAt( scene.position ); // the origin
Run Code Online (Sandbox Code Playgroud)

会引起你所指的"翻转",因为相机试图保持"正面向上",并且当它经过"北极"时它将迅速改变方向.

如果像这样偏移相机的x坐标,

camera.position.x = 200;
Run Code Online (Sandbox Code Playgroud)

相机的行为对你来说会更自然.