利用阻值数据绘制曲线主要用了Qt自带的函数painter.drawLine(),连接相邻数据点。简要步骤是:
1、初始化历史电阻率图形窗口;
2、从文件读取历史电阻率数据并存储在数组中。特别注意要判断是否读取到了文件尾。
3、绘制坐标轴
4、获得数据中最大值和最小值、平均数
5、计算 x 轴和 y 轴的缩放系数
6、利用painter.drawLine()进行曲线绘制
7、 绘制平均线,刻度线,最大值和最小值
伪代码如下:
void plotWindow::Paint(){
初始化历史电阻率图形窗口;
//从文件读取历史电阻率数据。注意要判断是否读取到了文件尾
fp = fopen("data.txt", "r");
……
painter.setRenderHint(QPainter::Antialiasing, true);//设置反锯齿模式,使图像更平滑
绘制坐标轴
获得数据中最大值和最小值、平均数
计算 x 轴和 y 轴的缩放系数:kx =图像宽度÷数据点量-1;ky=图像高度÷最大值
//曲线绘制
for (int i = 0; i < n - 1; i++){
painter.setPen(pen);//设置连线的画笔
painter.drawLine(pointx + kx * i, pointy - a[i] * ky, pointx + kx * (i + 1), pointy - a[i + 1] * ky);
painter.setPen(penPoint);//设置描点的画笔
painter.drawPoint(pointx + kx * i, pointy - a[i] * ky);
}
绘制平均线,刻度线,最大值和最小值
}
完整代码请见博客Qt5绘制曲线图(以阻值数据为例)-CSDN博客