来自 C++ 数组的实时颜色图
Realtime colormap from c++ array
我正在开发一种数据采集软件,它可以存储来自板载卡的数据,并以生产者-消费者的方式连续绘制数据。
我已经拥有的是这样的:
制作人:
while(true){
acquire(data);
signal_consumer();
}
消费者:
while(true){
wait_producer();
data2file();
}
数据是一个包含 1 秒的数组。收购。
我现在要添加的是另一个消费者,它执行一些过滤器(可能是 fft)并在每次采集时更新颜色图(过滤的每个数据数组将是颜色图的一行)。
我已经阅读了几个绘图库并决定使用 qwt。我看过这些示例(实时和频谱图),但我无法理解它的工作方式以及如何让它绘制我的过滤数据数组。
我是否使用了正确的工具来完成工作?有没有办法为 qwt 使用 c++ 数组?如果是,怎么会?
有很多工具可以解决这个问题,根据您的描述,qwt 绝对是一个不错的选择。是的,您可以在 qwt 中使用向量(您所说的 c++ 数组)。这是一个例子:
QwtPlot plot;
// ... setup plot to taste ...
std::vector<double> x;
std::vector<double> y;
x.push_back(0.0);
x.push_back(1.0);
x.push_back(2.0);
y.push_back(0.0);
y.push_back(2.0);
y.push_back(4.0);
QwtPlotCurve curve("Plot");
curve.setSamples(&x[0], &y[0], (int)x.size());
curve.attach(&plot);
我正在开发一种数据采集软件,它可以存储来自板载卡的数据,并以生产者-消费者的方式连续绘制数据。
我已经拥有的是这样的:
制作人:
while(true){
acquire(data);
signal_consumer();
}
消费者:
while(true){
wait_producer();
data2file();
}
数据是一个包含 1 秒的数组。收购。
我现在要添加的是另一个消费者,它执行一些过滤器(可能是 fft)并在每次采集时更新颜色图(过滤的每个数据数组将是颜色图的一行)。
我已经阅读了几个绘图库并决定使用 qwt。我看过这些示例(实时和频谱图),但我无法理解它的工作方式以及如何让它绘制我的过滤数据数组。
我是否使用了正确的工具来完成工作?有没有办法为 qwt 使用 c++ 数组?如果是,怎么会?
有很多工具可以解决这个问题,根据您的描述,qwt 绝对是一个不错的选择。是的,您可以在 qwt 中使用向量(您所说的 c++ 数组)。这是一个例子:
QwtPlot plot;
// ... setup plot to taste ...
std::vector<double> x;
std::vector<double> y;
x.push_back(0.0);
x.push_back(1.0);
x.push_back(2.0);
y.push_back(0.0);
y.push_back(2.0);
y.push_back(4.0);
QwtPlotCurve curve("Plot");
curve.setSamples(&x[0], &y[0], (int)x.size());
curve.attach(&plot);