2013-04-12 182 views
0

我正在與代碼戰鬥,使它圍繞物體旋轉相機。我使用的代碼是:opengl相機圍繞物體旋轉

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);

如果obj是我想圍繞旋轉的攝像頭型號,並且角度由1戰平每遞增。有人可以解釋這個問題,我做錯了什麼?

回答

0

你試圖達到什麼確切的相機議案? 如果你想在XZ平面上轉動obj,同時保持恆定的高度,你應該這樣做:

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

eyeY =(浮子)(Y0); //恆定高度

EYEZ =(浮子)(obj.z + 500 * Math.sin(Math.toRadians(角度));

另外,如果y0!= 0,那麼(0,1,0)不是一個合適的「向上」向量,並且會扭曲你的視圖。

+0

不管怎樣,它仍然沒有幫助。 –