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