打开GL Line Draw android

时间:2016-08-08 07:02:21

标签: android opengl-es opengl-es-2.0

enter image description here我是Open GL的新手。我的座右铭是使用开放式GL创建徒手画。 这我想通过连接Drag上的顶点来实现。我的问题是,当我点击屏幕上的任何地方时,从中心操作系统屏幕绘制一条线到那一点。我无法弄清楚为什么?请帮忙。

这就是我要画的内容:

@Override
public void onDrawFrame(GL10 gl) {
    gl.glClear(GL10.GL_COLOR_BUFFER_BIT);

    glUniform4f(uColorLocation, 1.0f, 0.0f, 0.0f, 1.0f);

    vertexData.put(toFloatarray(points));
    vertexData.clear();

    for (int i = last_size; i < points.size(); i++) {

        glDrawArrays(GL_LINES, i , 2);
        last_size = points.size();

    }

}

我知道循环不是最好的方法,这是问题,但我无法克服它。

编辑:

这就是我向数组

添加点数的方法
public void handleTouchDrag(float normalizedX, float normalizedY) {
    points.add(normalizedX);
    points.add(normalizedY);

}

其中:

final float normalizedX = (event.getX() / (float) v.getWidth()) * 2 - 1;
final float normalizedY = -((event.getY() / (float) v.getHeight()) * 2 - 1);

1 个答案:

答案 0 :(得分:1)

您只为一个顶点提供函数并请求绘制线段,OpenGL决定将第二个点视为原点。

您可以使用

 glDrawArrays(GL_LINE_STRIP, 0, points.size());

这将绘制线条到前一点。