在 Qt 中实现滑动实时二维绘图
Posted
技术标签:
【中文标题】在 Qt 中实现滑动实时二维绘图【英文标题】:Implementing sliding realtime 2D plot in Qt 【发布时间】:2015-04-03 15:39:43 【问题描述】:我正在从管道内移动的超声波设备获取流式测量数据,我想绘制这些测量值的滑动/实时图。 Y 轴代表管道周围 360 度的梯度,X 轴代表以毫米为单位的纵向位置。换句话说,当新数据到达时,X 轴将以与扫描仪相同的速率更新和移动(大约 40Hz)。每个 (x,y) 坐标处的值表示一个测量值,应将其映射到颜色图中的颜色。
我是图形新手(系统和后端人员),我一直在研究 QImage、QWT 和 QCustomPlot,但它们似乎都没有直接解决问题而无需手动构建 2D 矩阵,将其绘制在 QImage 中,并更新和移动每个数据点的坐标并重绘以移动/滚动它。 QCustomplot 对图形做得很好,但我看不出它如何应用于他们的颜色图。
任何为这种情节提供原语(或小部件)的框架或包的提示都将受到欢迎。
【问题讨论】:
【参考方案1】:这可以通过 Qwt 来完成。诀窍是围绕系列数据创建一个包装器,每次添加数据点时都会触发重新绘制。如果你想变得花哨,你可以添加一个计时器,从系列中删除旧数据并触发另一个重新绘制。
查看 Qwt 源代码附带的 CPU、示波器和实时示例。他们实现了这个技巧。
【讨论】:
谢谢!试试这个,你会知道它是怎么回事。 我实际上发现 Qwt 很难使用,但我已经使用基本的 QPainter 来绘制 QPixmaps 矩阵,然后在添加新项目时移动该矩阵,并在 paintEvents 上重绘。以上是关于在 Qt 中实现滑动实时二维绘图的主要内容,如果未能解决你的问题,请参考以下文章