您的位置:首页 > 编程语言 > PHP开发

QwtPlot画曲线

2015-08-11 14:33 447 查看
直接用代码写

#include <QtGui/QApplication>
#include <Qt/qmath.h>
#include <QVector>
#include <qwt_plot.h>
#include <qwt_plot_curve.h>
#include <qwt_plot_magnifier.h>
#include <qwt_plot_panner.h>
#include <qwt_legend.h>

int main(int argc, char *argv[])
{
QApplication a(argc, argv);

QwtPlot plot(QwtText("CppQwtExample1"));
plot.resize(640,400);
//设置坐标轴的名称
plot.setAxisTitle(QwtPlot::xBottom, "x->");
plot.setAxisTitle(QwtPlot::yLeft, "y->");
//设置坐标轴的范围
plot.setAxisScale(QwtPlot::xBottom, 0.0, 2.0 * M_PI);
plot.setAxisScale(QwtPlot::yLeft, -1.0, 1.0);
//设置右边标注
plot.insertLegend(new QwtLegend(), QwtPlot::RightLegend);

//使用滚轮放大/缩小
(void) new QwtPlotMagnifier( plot.canvas() );

//使用鼠标左键平移
(void) new QwtPlotPanner( plot.canvas() );

//计算曲线数据
QVector<double> xs;
QVector<double> ys;
for (double x = 0; x < 2.0 * M_PI; x+=(M_PI / 10.0))
{
xs.append(x);
ys.append(qSin(x));
}
//构造曲线数据
QwtPointArrayData * const data = new QwtPointArrayData(xs, ys);
QwtPlotCurve curve("Sine");
curve.setData(data);//设置数据
curve.setStyle(QwtPlotCurve::Lines);//直线形式
curve.setCurveAttribute(QwtPlotCurve::Fitted, true);//是曲线更光滑
curve.setPen(QPen(Qt::blue));//设置画笔

curve.attach(&plot);//把曲线附加到plot上

plot.show();

return a.exec();
}

设计器设计

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "qwt_legend.h"
#include "qwt_plot_magnifier.h"
#include "qwt_plot_panner.h"
#include "qwt_point_data.h"
#include "qwt_plot_curve.h"
#include <QVector>

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    ui->qwtPlot->setAxisScale(QwtPlot::xBottom, 0.0, 2.0 * M_PI);
    ui->qwtPlot->setAxisScale(QwtPlot::yLeft, -1.0, 1.0);

    //计算曲线数据
    QVector<double> xs;
    QVector<double> ys;
    for (double x = 0; x < 2.0 * M_PI; x+=(M_PI / 10.0))
    {
        xs.append(x);
        ys.append(qSin(x));
    }
    //QwtPlot;
    //构造曲线数据
    QwtPointArrayData * const data = new QwtPointArrayData(xs, ys);

    QwtPlotCurve *curve = new QwtPlotCurve("Sine");
    curve->setStyle(QwtPlotCurve::Lines);//直线形式
    curve->setCurveAttribute(QwtPlotCurve::Fitted, true);//是曲线更光滑
    curve->setPen(QPen(Qt::blue));//设置画笔
    curve->setData(data);//设置数据
    curve->attach(ui->qwtPlot);

    /*
    QwtPlotCurve curve("Sine");
    curve.setData(data);//设置数据
    curve.setStyle(QwtPlotCurve::Lines);//直线形式
    curve.setCurveAttribute(QwtPlotCurve::Fitted, true);//是曲线更光滑
    curve.setPen(QPen(Qt::blue));//设置画笔
    curve.attach(&plot);//把曲线附加到plot上
    */
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: