0

I'm fighting with the code, to make it rotate camera around the object. The code that I'm using is:

eyeX = (float) (obj.x + 500*Math.cos(Math.toRadians(angle))*Math.sin(Math.toRadians(angle))); eyeY = (float) (obj.y + 500*Math.sin(Math.toRadians(angle))*Math.sin(Math.toRadians(angle))); eyeZ = (float) (obj.z + 500*Math.cos(Math.toRadians(angle))); Matrix.setLookAtM(mViewMatrix, 0, eyeX, eyeY, eyeZ, obj.x, obj.y, obj.z, 0, 1, 0);

Where obj is the model I want to rotate the camera around, and angle is incremented by 1 with every draw. Can somebody shed a light to this problem, what I'm doing wrong?

4

1 に答える 1

0

達成しようとしている正確なカメラの動きは何ですか? 一定の高さを保ちながら XZ 平面上で obj を回転させたい場合は、次のようにする必要があります。

eyeX = (float)(obj.x + 500*Math.cos(Math.toRadians(角度));

eyeY = (float)(y0); //一定の高さ

eyeZ = (float)(obj.z + 500*Math.sin(Math.toRadians(角度));

また、y0 != 0 の場合、(0, 1, 0) は適切な「アップ」ベクトルではなく、表示が歪んでしまいます。

于 2013-04-12T12:03:25.850 に答える