我需要有关如何实时绘制点的建议。使用OpenGL 现在,正在做的就是将所需的数据从csv加载到数组,并从那里绘制点。一切正常。
我打算做的是,在规则的时间间隔中逐个加载这样的多个csv,以便我可以创建一种动画输出。我可以这样做,但是一旦程序通过输入glutMainLoop();
绘制了点,它就不会关闭opengl窗口而消失。我要加载第一个csv,在OpenGL窗口中显示它,然后加载下一个csv,并显示新的点集,依此类推。
如果难以理解,请看下面的图片
只考虑红色和蓝色点,认为它们实际上并没有移动,而是从外部数据中绘制出来的,每个新位置都从csv文件中加载。希望它清楚
答案 0 :(得分:1)
[...]一旦程序通过输入glutMainLoop()绘制了点,它就不会在不关闭opengl窗口的情况下消失。
freeglut将过剩扩大了glutLeaveMainLoop
和glutMainLoopEvent
。
例如:
bool condtion = true;
while (condtion)
{
glutMainLoopEvent(); // handle the main loop once
glutPostRedisplay(); // cause `display` to be called in `glutMainLoopEvent`
condtion = ...;
}
另一种选择是使用glutIdleFunc
做其他事情。因此完全没有必要保留glut主循环。