Opengl 绘制数组

Opengl 绘制数组,opengl,Opengl,我试图用ar[]来画一条线。它包含点跳线。我还尝试使用clr[]中描述的颜色。谁能告诉我我的ver函数有什么问题吗。当我运行它时,只有一个白色屏幕出现 void ver(void) { glClear(GL_DEPTH_BUFFER_BIT); glPushMatrix(); GLfloat ar [] = {0.25, 0.25, 0.5, 0.25, }; GLfloat clr

我试图用ar[]来画一条线。它包含点跳线。我还尝试使用clr[]中描述的颜色。谁能告诉我我的ver函数有什么问题吗。当我运行它时,只有一个白色屏幕出现

 void ver(void)
{

glClear(GL_DEPTH_BUFFER_BIT);

glPushMatrix();


GLfloat ar [] = {0.25, 0.25,
                 0.5, 0.25,

                            };      
GLfloat clr [] = {1.0, 0.0,0.0

};



glEnableClientState(GL_COLOR_ARRAY);                        
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(2,GL_FLOAT, 0, ar);
glColorPointer(3,GL_FLOAT,0,clr);
glDrawElements(GL_LINES, 2, GL_FLOAT, ar);
glDrawElements(GL_LINES, 3, GL_FLOAT, clr);
    glPopMatrix();
glutSwapBuffers();
}

您对
gl抽屉元素()
的调用错误。您需要向它传递一个索引数组,并且只需调用它一次。所以你需要这样的东西:

GLuint indices[] = { 0, 1, 2, 3 };
glDrawElements (GL_LINES, 2, GL_UNSIGNED_INT, indices);
此外,我认为您需要扩展颜色数组,使每个顶点有一种颜色,因此它看起来更像:

GLfloat clr [] = { 1.0, 0.0, 0.0,
                   1.0, 0.0, 0.0 };