我在Xcode中编写了一段C++程序,用于实现符号回归和遗传编程。我想创建一个窗口,以可视化参考数据(2D点数组)和程序每个代最佳函数生成情况。
简单来说,我希望该窗口显示2个图表,并通过循环进行更新。根据我的理解,GLUT似乎是一个很好的框架,我已经编写了一个函数以显示参考数据(使用std::vector存储“referenceDataSet”变量)。
这个问题在于我不确定应该如何更新窗口,或绘制一个不断变化的第二个图形。此外,这是我在 Stack Overflow 上的第一个问题,如果我做错了什么,或者任何内容难以理解,请谅解。我已经尽力搜寻答案,但并没有找到相关的信息。
简单来说,我希望该窗口显示2个图表,并通过循环进行更新。根据我的理解,GLUT似乎是一个很好的框架,我已经编写了一个函数以显示参考数据(使用std::vector存储“referenceDataSet”变量)。
void renderScene(){
// The min/max variables are just for scaling & centering the graph
double minX, maxX, minY, maxY;
minX = referenceDataSet[0].first;
maxX = referenceDataSet[0].first;
minY = referenceDataSet[0].second;
maxY = referenceDataSet[0].second;
for (int i = 0; i < referenceDataSet.size(); i++) {
minX = min(minX, referenceDataSet[i].first);
maxX = max(maxX, referenceDataSet[i].first);
minY = min(minY, referenceDataSet[i].second);
maxY = max(maxY, referenceDataSet[i].second);
}
glLoadIdentity ();
glClear(GL_COLOR_BUFFER_BIT);
glBegin( GL_LINE_STRIP );
glColor4f( 1.0, 0.0, 0.0, 1.0);
for (int i = 0; i < referenceDataSet.size(); i++) {
glVertex2f((referenceDataSet[i].first-minX)/(maxX-minX)-0.5, (referenceDataSet[i].second-minY)/(maxY-minY)-0.5);
}
glEnd();
glFlush();
}
void renderInit(int argc, char **argv){
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
glutInitWindowSize(600, 600);
glutCreateWindow("");
glutDisplayFunc(renderScene);
glutCheckLoop();
}
这个问题在于我不确定应该如何更新窗口,或绘制一个不断变化的第二个图形。此外,这是我在 Stack Overflow 上的第一个问题,如果我做错了什么,或者任何内容难以理解,请谅解。我已经尽力搜寻答案,但并没有找到相关的信息。