@@ -0,0 +1,60 | |||||
|
1 | #include <QTimer> | |||
|
2 | #include <QTime> | |||
|
3 | #include <QObject> | |||
|
4 | #include <cmath> | |||
|
5 | #include <qxychartseries.h> | |||
|
6 | ||||
|
7 | QTCOMMERCIALCHART_USE_NAMESPACE | |||
|
8 | ||||
|
9 | #define PI 3.14159265358979 | |||
|
10 | static const int numPoints =100; | |||
|
11 | ||||
|
12 | class WaveGenerator: public QObject | |||
|
13 | { | |||
|
14 | Q_OBJECT | |||
|
15 | ||||
|
16 | public: | |||
|
17 | WaveGenerator(QXYChartSeries* series1, QXYChartSeries* series2) : | |||
|
18 | m_series1(series1), | |||
|
19 | m_series2(series2), | |||
|
20 | m_wave(0), | |||
|
21 | m_step(2*PI/numPoints) | |||
|
22 | { | |||
|
23 | ||||
|
24 | QTime now = QTime::currentTime(); | |||
|
25 | qsrand((uint)now.msec()); | |||
|
26 | ||||
|
27 | int fluctuate = 100; | |||
|
28 | ||||
|
29 | for (qreal x = 0; x <= 2*PI; x+=m_step) { | |||
|
30 | series1->add(x, fabs(sin(x)*fluctuate)); | |||
|
31 | series2->add(x, fabs(cos(x)*fluctuate)); | |||
|
32 | } | |||
|
33 | ||||
|
34 | QObject::connect(&m_timer,SIGNAL(timeout()),this,SLOT(update())); | |||
|
35 | m_timer.setInterval(5000); | |||
|
36 | m_timer.start(); | |||
|
37 | ||||
|
38 | }; | |||
|
39 | ||||
|
40 | public slots: | |||
|
41 | void update() | |||
|
42 | { | |||
|
43 | int fluctuate; | |||
|
44 | ||||
|
45 | for (qreal i = 0, x = 0; x <= 2*PI; x+=m_step, i++) { | |||
|
46 | fluctuate = qrand() % 100; | |||
|
47 | m_series1->set(i, x, fabs(sin(x)*fluctuate)); | |||
|
48 | fluctuate = qrand() % 100; | |||
|
49 | m_series2->set(i, x, fabs(cos(x)*fluctuate)); | |||
|
50 | } | |||
|
51 | ||||
|
52 | } | |||
|
53 | ||||
|
54 | private: | |||
|
55 | QXYChartSeries* m_series1; | |||
|
56 | QXYChartSeries* m_series2; | |||
|
57 | int m_wave; | |||
|
58 | qreal m_step; | |||
|
59 | QTimer m_timer; | |||
|
60 | }; |
General Comments 0
You need to be logged in to leave comments.
Login now