在Qt中实现滑动实时二维绘图

Implementing sliding realtime 2D plot in Qt

我正在从管道内移动的超声波设备获取流式测量数据,我想绘制这些测量值的 sliding/realtime 图。 Y 轴表示管道周围 360 度的梯度,X 轴表示以毫米为单位的纵向位置。换句话说,当新数据到达时,X 轴将以与扫描仪相同的速率更新和移动(大约 40Hz)。每个 (x,y) 坐标处的值代表一个测量值,应将其映射到颜色图中的一种颜色。

我是图形学新手(系统和后端人员),我一直在研究 QImage、QWT 和 QCustomPlot,但其中 none 似乎可以直接解决问题,而无需手动构建 2D 矩阵,在 QImage 中绘制它,更新和移动每个数据点的坐标并重绘到 move/scroll 它。 QCustomplot 在图形方面做得非常好,但我看不出如何将它应用于它们的颜色图。

对于为此类情节提供原语(或小部件)的框架或包的任何提示都将非常受欢迎。

这可以用Qwt来完成。诀窍是围绕系列数据创建一个包装器,每次添加数据点时都会触发重新绘制。如果你想变得有趣,你可以添加一个计时器,从系列中删除旧数据并触发另一个重绘。

查看 Qwt 源代码附带的 CPU、示波器和实时示例。他们实现了这个技巧。