请参阅下面的我的编辑。
我在原点绘制了一个球体。我的相机正在观察半径为 3 个单位的球体。我正在尝试使用 2D 操纵杆使相机绕球体运行。我目前正在使用下面的代码来环绕球体,但我不确定如何让操纵杆控制操纵杆指向的方向的旋转。我的操纵杆提供 0 度向上的角度,当您逆时针移动时,度数上升到 360。操纵杆离中心起点越远,旋转速度就会增加。我只是不知道该怎么做。
PIOVER180 = Math.PI/180;
rho = 3;
theta = (theta+1)%360;
phi = (theta+1)%360;
camera.position.x = (float) (rho * Math.sin(theta * PIOVER180) * Math.cos(phi * PIOVER180));
camera.position.y = (float) (rho * Math.cos(theta * PIOVER180));
camera.position.z = (float) (rho * Math.sin(theta * PIOVER180) * Math.sin(phi * PIOVER180));
camera.normalizeUp();
libGDX 提供了一个不错的PerspectiveCamera
类,我希望将其扩展为 aSphericalCamera
并在需要时使用它来调用我的轮换。
编辑:
我想如果我能弄清楚如何让 2D 操纵杆正确操纵theta
和phi
变量,那么它应该可以正常工作。theta
是正 x 轴与球体上的点之间的角度,该点在phi
z 轴上的位置(正或负),并且rho
是从中心点 (0, 0, 0) 到球面上的点的距离球体(基本上是半径)