我是一个机械工程师,只有有限的C编程知识。我写了一些代码来进行模拟,我想要可视化模拟结果。目前,我正在使用Dev-C
编写代码。使用fopen
和fprintf
命令,我生成了一个包含结果的.dat
文件。然后,我打开GNUPLOT
程序并导入我的.dat
文件来绘制结果。这需要时间,我必须等到模拟结束。有没有一种简单的方法可以将我的绘图仪连接到Dev-C
,以便我的绘图仪在仿真期间开始打印数据?任何库或其他?
发布于 2013-01-14 20:48:44
既然您已经了解gnuplot,那么最简单的做法可能就是从您的程序中调用gnuplot并通过管道将数据传递给它:
FILE *gnuplot = popen("gnuplot", "w");
fprintf(gnuplot, "plot '-'\n");
for (i = 0; i < count; i++)
fprintf(gnuplot, "%g %g\n", x[i], y[i]);
fprintf(gnuplot, "e\n");
fflush(gnuplot);
发布于 2013-01-14 10:39:50
好的,当你写出一个文件时,一种解决方案就是在你写出文件时调用一个system()
,然后调用gnuplot。
但是,这意味着您每次都应该更改文件名,但我担心如果您这样做,它看起来不会正确,因为您每次都会发送少量数据。
http://www.gnu.org/software/libc/manual/html_node/System-Calls.html
我从来没有使用过gnuplot,但是如果你看看这个页面(http://gnuplot-tricks.blogspot.com/),你可能会发现一些技巧,可以让它工作得很好。
但是,我认为,除非您打算自己绘制所有内容,并跳过gnuplot,否则您可能只需要等待。
您可能会发现gnuplot的C接口可能会对您有所帮助:
http://ndevilla.free.fr/gnuplot/
发布于 2013-01-14 13:05:37
我一直在使用PLPlot在C语言中绘图,我发现它既有效又简单。它是跨平台的,开源的,并且支持丰富的绘图功能。我建议先看一下示例,然后再开始。
https://stackoverflow.com/questions/14311640
复制相似问题