Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt中滑动实时二维绘图的实现_Qt_Plot_Qimage_Qwt_Qcustomplot - Fatal编程技术网

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

Qt中滑动实时二维绘图的实现,qt,plot,qimage,qwt,qcustomplot,Qt,Plot,Qimage,Qwt,Qcustomplot,我正在从管道内移动的超声波设备获取流式测量数据,我想对这些测量进行滑动/实时绘图。Y轴代表管道周围360度的梯度,X轴代表长度方向的位置,单位为毫米。换句话说,当新数据到达时,X轴将以与扫描仪相同的速率更新和移动(约40Hz)。每个(x,y)坐标处的值表示一个测量值,该测量值应映射到colormap中的颜色 我不熟悉图形(系统和后端人员),我一直在研究QImage、QWT和QCustomPlot,但它们似乎都不能直接解决问题,而不需要手动构建2D矩阵,在QImage中绘制,更新和移动每个数据点的

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

我不熟悉图形(系统和后端人员),我一直在研究QImage、QWT和QCustomPlot,但它们似乎都不能直接解决问题,而不需要手动构建2D矩阵,在QImage中绘制,更新和移动每个数据点的坐标,并重新绘制以移动/滚动它。QCustomplot在图形上做得非常好,但我不知道如何将其应用于颜色贴图


对于为这种绘图提供原语(或小部件)的框架或包,任何提示都是非常受欢迎的。

这可以通过Qwt完成。诀窍是在序列数据周围创建一个包装器,每次添加数据点时都会触发replot。如果你想变得更有趣,你可以添加一个定时器,从序列中删除旧数据并触发另一个replot


请参阅Qwt源代码附带的CPU、示波器和实时示例。他们实施了这个把戏。

谢谢!我实际上发现Qwt很难使用,但我已经实现了使用基本的QPainter来绘制Qpixmap矩阵,然后在添加新项目时移动,并在paintEvents上重新绘制。