QQ:609162385
博客:https://blog.csdn.net/cqltbe131421
#ifndef LINEARFITTING_H
#define LINEARFITTING_H
#include <QWidget>
#include <list>
#include "fitting.h"
#include <QPaintEvent>
#include <QPainter>
namespace Ui {
class LinearFitting;
}
class LinearFitting : public QWidget
{
Q_OBJECT
public:
explicit LinearFitting(QWidget *parent = 0);
~LinearFitting();
protected:
//重载绘画函数(画出空白画布)
void paintEvent(QPaintEvent *);
//拟合结果处理相关
void equationOutput(int type); //输出拟合方程
void errorOutput(fitting *fitResult); //误差输出函数
void drawFittingEquation(int n,fitting *fitResult); //画出拟合曲线
void Paint_axis(); //坐标系函数
void createImgDisplay(); //画布创建函数
void LinearFit();
void QuadraticFit();
void PolyFit();
void LogarithmicFit();
void ComprehensiveFit(); //综合拟合槽——声明
void Paint_point(); //数据点绘制及连线
void Paint_degree(); //绘制坐标轴上的刻度
void SaveImage(); //图片保存槽——声明
void SaveText(); //txt保存槽——声明
void InputDataPross(); //输入数据解析
private slots:
void on_btn_line_fit_clicked();
void on_btn_Poly_Fitt_clicked();
void on_btn_QuadraticFit_clicked();
void on_btn_LogarithmicFit_clicked();
void on_btn_ComprehensiveFit_clicked();
void on_btn_save_image_clicked();
void on_btn_save_txt_clicked();
void on_btn_reboot_clicked();
private:
//画布声明
QImage image;
Ui::LinearFitting *ui;
fitting *fit;
int axis_width=760,axis_height=380; //坐标轴长度
//存放读入数据的链表
list <double> lx;
list <double> ly;
//系数链表
list <double> factor_result;
int offset=50; //其实作图点据坐标轴偏移量
double kx; //横坐标比例尺(图上距离/数据距离)
double ky; //纵坐标比例尺(图上距离/数据距离)
double max_lx,min_lx,max_ly,min_ly;
int pointx=10,pointy=390; //原点坐标
int N=0; //多项式拟合次数
};
#endif // LINEARFITTING_H
下载地址:
https://download.csdn.net/download/cqltbe131421/10934249