java - Android OpenGL 点数组

标签 java android opengl-es multidimensional-array point

我试图像时尚一样在网格中制作一系列点,但有一个点只出现在中间:I

private Point[][] sq = new Point[10][10];

@Override
public void onDrawFrame(GL10 gl) {



    gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);

    gl.glLoadIdentity();

    for(int x = 0; x< 10 ; x++){
        for(int y = 0; y< 10 ; y++){
            sq[x][y] = new Point(x/10,y/10);
            gl.glTranslatef(0.0f, x/10,-5.0f);
             sq[x][y].draw(gl, 0, 1, 0);
        }
    }

最佳答案

假设 openGL ES 与标准 openGL 相同,您每次转换时都需要推送和弹出矩阵。否则,您将第一次平移 0,然后平移 0.1,然后平移 0.3,然后平移 0.6 等等...

但我假设你想翻译 0、0.1、0.2、0.3、0.4 等...

我也不确定为什么你只用 x 值沿 y 轴平移?我认为:

gl.glTranslatef(0.0f, x/10,-5.0f);

应该是这样的:

gl.glTranslatef(x/10.0f, y/10.0f, -5.0f);

我想你想要这样的东西:

for(int x = 0; x< 10 ; x++){
    for(int y = 0; y< 10 ; y++){

        sq[x][y] = new Point(x/10.0f, y/10.0f);

        gl.glPushMatrix();
        gl.glTranslatef(x/10.0f, y/10.0f, -5.0f);
        sq[x][y].draw(gl, 0, 1, 0);
        gl.glPopMatrix();
    }
}

关于java - Android OpenGL 点数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14949800/

相关文章:

java - 如何执行一个 Activity N次,其中N是用户输入

android - 操作栏可检查图标?

java - 将 Texture 转换为 FrameBuffer 并返回

Java XML DSig 和 XPath

java - 错误: incompatible types: Integer cannot be converted to Integer[]

java - 如何通过 BIRT API 设置参数并将其传递给 BIRT 报告设计器创建的 BIRT 报告?

java - Android OpenGL ES 正交奇怪的长宽比

java - 通过bufferedReader从本地路径读取json文件构建html文件

php - 无法使用 XMPPHP 将我的应用程序服务器连接到 GCM 的 CCS

android - 为什么android.Matrix.setRotateM返回一个旋转方向与预期旋转矩阵相反的矩阵?