Chinaunix首页 | 论坛 | 博客
  • 博客访问: 91170
  • 博文数量: 21
  • 博客积分: 548
  • 博客等级: 中士
  • 技术积分: 290
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-01 12:11
文章分类

全部博文(21)

文章存档

2012年(12)

2011年(9)

我的朋友

分类: 嵌入式

2011-11-18 19:52:42

利用qwt画正弦曲线
QWT,全称是Qt Widgets for Technical Applications,是一个基于LGPL版权协议的开源项目, 可生成各种统计图。它为具有技术专业背景的程序提供GUI组件和一组实用类,其目标是以基于2D方式的窗体部件来显示数据, 数据源以数值,数组或一组浮点数等方式提供, 输出方式可以是Curves(曲线),Slider(滚动条),Dials(圆盘),Compasses(仪表盘)等等。该工具库基于Qt开发,所以也继承了Qt的跨平台特性。
但是qwt的中文例子较少,给初学者带来一定的困难(本人也是初学者,)。下面是从qwt例子里面写的一个最简单的正弦曲线。
  1. #include <cmath>
  2. #include <qwt_series_data.h>
  3. #include <qwt_plot_curve.h>
  4. #include <qwt_plot.h>
  5. #include <qapplication.h>

  6. class SinusData: public QwtSyntheticPointData
  7. {
  8. public:
  9.     SinusData():
  10.         QwtSyntheticPointData(100)
  11.     {
  12.     }
  13.     virtual double y(double x) const
  14.     {
  15.         return qSin(x);
  16.     }
  17. };

  18. int main(int argc, char **argv)
  19. {
  20.     QApplication a(argc, argv);

  21.     QwtPlot plot;
  22.     plot.setAxisScale(QwtPlot::xBottom, 0.0, 10.0);
  23.     plot.setAxisScale(QwtPlot::yLeft, -1.0, 1.0);

  24.     QwtPlotCurve *curve = new QwtPlotCurve("y = sin(x)");
  25.     curve->setData(new SinusData());
  26.     curve->attach(&plot);

  27.     plot.show();
  28.     return a.exec();
  29. }
是不是很简单?


阅读(3318) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~