以心电图风格实时绘制质量控制图
QCustomPlot in real time in an ECG style
我想制作一个实时图来绘制来自我的 Arduino 的数据,我想使用 QCustomPlot 中的以下函数以 ECG 风格绘制图形(几秒钟后再次开始并替换以前的数据):
void QCPGraph::addData(const QVector<double> &keys, const QVector<double> &values)`
具有串行端口的keys=time
和values=data
。
我已经有了串行数据和连续的图形,但我不知道如何使用上面的函数对其进行修改并制作时间矢量。
你能给我一个如何调用该函数的例子吗?
如果我
做对了,你有一个图表,它xAxis
范围是恒定的。假设它被定义为 MAX_RANGE
秒,您希望一旦它经过 MAX_RANGE
秒,它将清除图形并从 0
秒重新开始。
如果这一切都是正确的,那么我想你已经有一个函数,你每 T
秒调用一次以更新情节。如果没有,那么看看这个例子。
假设您已经有一个每 T
秒调用一次的函数:
void MyPlot::updatePlot(int yValue)
然后只需添加一个timeCounter
作为每次调用都会更新的类变量。然后添加一个 if
语句,该语句将检查它是否通过了MAX_RANGE
。如果确实如此,则使用 clearData()
清除图形,添加新值并重置timeCounter
。如果没有,则只需添加新值。简单示例(只需进行更改以适应您的情况):
void MyPlot::updatePlot(int yValue){
this->timeCounter += T;
if (this->timeCounter >= MAX_RANGE) {
ui->customPlot->graph(0)->clearData();
ui->customPlot->graph(0)->addData(0, yValue);
this->timeCounter = 0;
}
else {
ui->customPlot->graph(0)->addData(this->timeCounter, yValue);
}
}
相关文章:
- 控制允许动态运行c++的并发操作数
- 从控制台中删除最后打印的元素
- QuadTree只在窗口的右上角绘制
- 绘制旋转的三角形
- 是否可以使用if constexpr删除控制流语句
- flutter:即使shouldRepaint()返回true,自定义画家也不会重新绘制
- 无法在windows控制台中为C++程序提供必要的输入
- 如何在QT中的自定义视频小工具t上绘制矩形
- 如何在Visual Basic中使用矩形函数OpenGL绘制矩形
- 无法使用VAO和EBO(openGL)绘制多个对象
- 为什么我的点没有在 OpenGL 中绘制鼠标所在的位置?
- 绘制顺时针三角形,重新排序点
- 在顶点着色器中使用 OpenGl 的未声明标识符,我在顶点着色器中绘制三角形时遇到问题
- 控制到达非空函数clang(-Wreturn-type)的末尾
- SFML 文本未绘制在窗口上
- 查找 GCD:并非所有控制路径都返回值
- 通过 API 控制 DJI 相机
- 如何在快板的屏幕中显示子位图的绘制?
- 如何绘制自定义形状的元素?
- 控制paintGL方法-如何决定要绘制什么