在Android OpenGLES中,将glOrthof
设置为屏幕坐标,可以通过以下代码示例来实现:
首先,在onSurfaceChanged
方法中,获取屏幕的宽度和高度,并设置OpenGL视口的大小:
@Override
public void onSurfaceChanged(GL10 gl, int width, int height) {
gl.glViewport(0, 0, width, height);
// ...
}
然后,在onSurfaceCreated
方法中,设置投影矩阵为正交投影矩阵,并根据屏幕宽高比来计算正交投影矩阵的参数:
@Override
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
gl.glMatrixMode(GL10.GL_PROJECTION);
gl.glLoadIdentity();
float ratio = (float) width / height;
float left = -ratio;
float right = ratio;
float bottom = -1;
float top = 1;
float near = 1;
float far = 10;
gl.glOrthof(left, right, bottom, top, near, far);
// ...
}
最后,在onDrawFrame
方法中,绘制你的OpenGL图形,使用设置好的屏幕坐标系统:
@Override
public void onDrawFrame(GL10 gl) {
gl.glMatrixMode(GL10.GL_MODELVIEW);
gl.glLoadIdentity();
// 绘制你的OpenGL图形
// ...
}
通过以上代码示例,你可以将OpenGL坐标系统设置为屏幕坐标系统,使用glOrthof
方法来设置正交投影矩阵。