以下の私の編集を参照してください。
原点に球が描かれています。私のカメラは半径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
クラスを提供します。私はそれを拡張して、SphericalCamera
必要なときにローテーションを呼び出すためにそれを使用したいと思っていました。
編集:
theta
2Dジョイスティックで変数とphi
変数を正しく操作する方法を理解できれば、問題なく動作するはずです。theta
は、正のx軸と球上の点の間の角度です。phi
ここで、z軸上には点があり(正または負)、rho
中心点(0、0、0)から上の点までの距離です。球(基本的には半径)