您好我正在使用c ++通过管道绘制文件中的数据。我编写了一个函数,它读入文本文件,处理信息,绘制文本文件中的数据,并根据需要绘制标签和箭头。
现在我需要一种在循环中平滑绘制的方法,以便在每次迭代时读取并绘制不同的文本文件,而不会使Gnuplot窗口闪烁。
例如:
for (unsigned int i = 0; i< 10; i++){
Processing_Plotting(i, gp);
}
这是我在主程序中的代码,它将绘制由'i'指示的文本文件。例如:laserData1,laserData2等。
目前,由于调用速度,情节会闪烁并且不可读。 我找了一种方法用Gnuplot实时绘制数据,但运气不好, 任何帮助,将不胜感激。感谢
我正在密谋的照片: http://imgur.com/3eTpMaB
答案 0 :(得分:1)
gnuplot-iostream库附带了一个动画示例。它不闪烁,至少不在我的机器上(Linux)。免责声明:我是该库的作者,所以这是一个无耻的插件。
您的代码段未显示您实际与gnuplot的接口,但是您必须确保做三件事:1)不要关闭然后在每帧之后重新打开管道,2)调用{{1在每帧之后的管道上,以及3)在帧之间添加延迟。要延迟Linux通话fflush
(并包括::usleep(microseconds)
),请在Windows上致电unistd.h
并添加::Sleep(milliseconds)
。
关于将动画数据传递到gnuplot的事情是你不知道它是否跟上了。因此,冲洗和睡眠至关重要。但我已经用gnuplot构建了一个示波器,所以我知道它可以很好地工作。