Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ OpenGL显示两个数组_C++_Arrays_Opengl_Polygon - Fatal编程技术网

C++ OpenGL显示两个数组

C++ OpenGL显示两个数组,c++,arrays,opengl,polygon,C++,Arrays,Opengl,Polygon,我需要一些c++/OpenGL编码方面的帮助。我正在做的是一个多边形近似算法 我的代码首先从.txt文件中提取一组点,将它们全部存储在一个数组中,然后显示该数组。然后它获取这些点并对其执行算法,并创建一个新的点数组。我不知道怎么做,就是如何让第二组点显示在第一个窗口的同一个窗口上。我必须创建一个新的显示函数并调用它吗?或者修改我现在必须的基本显示函数来接受数组?以下是我的显示功能的代码: void display(void){ glClearColor(0,0,0,0); glC

我需要一些c++/OpenGL编码方面的帮助。我正在做的是一个多边形近似算法

我的代码首先从.txt文件中提取一组点,将它们全部存储在一个数组中,然后显示该数组。然后它获取这些点并对其执行算法,并创建一个新的点数组。我不知道怎么做,就是如何让第二组点显示在第一个窗口的同一个窗口上。我必须创建一个新的显示函数并调用它吗?或者修改我现在必须的基本显示函数来接受数组?以下是我的显示功能的代码:

void display(void){
    glClearColor(0,0,0,0);
    glClear(GL_COLOR_BUFFER_BIT);
    glColor3f(1,1,1);

    glBegin(GL_POINTS);
    for(int i=0; i<2000; i++)
        glVertex2i(pixel[i].x,pixel[i].y);
    glEnd();

    glFlush();
}
void显示(void){
glClearColor(0,0,0,0);
glClear(GLU颜色缓冲位);
gl3f(1,1,1);
glBegin(总分);

对于(int i=0;i,您只需要绘制处理后的数组。考虑到您只需要渲染结果点,就像在代码示例中一样,您可以使用:

void display(void){
  glClearColor(0,0,0,0);
  glClear(GL_COLOR_BUFFER_BIT);
  glColor3f(1,1,1);

  glBegin(GL_POINTS);
  for(int i=0; i<2000; i++)
    glVertex2i(pixel[i].x,pixel[i].y);
  // here goes the rendering of the new set of points.
  glColor3f(1,0,0); // change the color so we can see better the new points.
  for(int i=0; i<2000; i++)
    glVertex2i(result[i].x,result[i].y);
  glEnd();

  glFlush();
}
void显示(void){
glClearColor(0,0,0,0);
glClear(GLU颜色缓冲位);
gl3f(1,1,1);
glBegin(总分);

对于(int i=0;iThat有效。因此,通过使用上述方法,我必须同时渲染它们。因此,我会在算法完成后调用glutMainLoop(),而不是在之前?如果我正确理解您的意思,glutMainLoop()总是在显示函数之前调用。当您调用glutMainLoop时,渲染循环开始(每次迭代只渲染一个帧)。显示函数在每次迭代中都被调用,并负责渲染帧。这就是为什么在调用glutMainLoop之前必须在代码中调用glutDisplayFunc的原因:因此,您可以向GLUT指定将执行渲染的函数。