2011-07-04 11 views
0

gl.glTranslatef(x、y、z)などの方法にどのような値を使用する必要があるのか​​を正確に把握するにはどうすればよいですか?例:四角形があり、左上隅に画面の約1/4の位置に表示したい。私はglTranslate()の値が-0.5と0.5であると考えましたが、これは私が期待した位置に表示されません。
基本的に私はOpenGL-ESでオブジェクトの正しい座標を見つける方法を知りませんでした。OpenGL-ESは正しい座標を見つける(翻訳など)

答えて

1

残念ながら、アンドロイド用のOpenGL-esコンテンツはまだ作成されていませんが、AFAIKでは、画面上の左上隅などのワールド座標(OpenGLで3D世界の座標)に変換する必要があります。

3Dの場合、これは光線射影によるものです。あなたはgoogle searchを介して多くの例を見つけることができ、多分OpenGLの実装もあります。あなたは(基本的には透視歪みで)直交射影行列を使用してビットを離れて得ることができ、2Dの場合

し、必要に応じて回転する(例えばlanscapeモード用):

// Initialize your projection matrix - current number are half the dimensions for the G1 I borrowed(320x480) 
glMatrixMode(GL_PROJECTION); 
glLoadIdentity(); 
glOrthof(-240.0f, 240.0f, -160.0f, 160.0f, -1.0f, 1.0f); 

// Rotate everything by 90 degrees 
glMatrixMode(GL_MODELVIEW); 
glLoadIdentity(); 
glRotatef(-90.0f, 0.0f, 1.0f, 0.0f); 

HTH

+0

ありがとうございました、I私は2Dを使用しているので、見て正射投影に変更しました。大いに助けて! – usealbarazer

関連する問題