##// END OF EJS Templates
Simple line chart screen shot
Simple line chart screen shot

File last commit:

r145:251cad7c49ee
r344:64e6a72f0f6c
Show More
wavegenerator.h
60 lines | 1.3 KiB | text/x-c | CLexer
Michal Klocek
minor. minssing hile
r134 #include <QTimer>
#include <QTime>
#include <QObject>
#include <cmath>
Michal Klocek
Fix previous broken commit
r145 #include <qlinechartseries.h>
Michal Klocek
minor. minssing hile
r134
QTCOMMERCIALCHART_USE_NAMESPACE
#define PI 3.14159265358979
static const int numPoints =100;
class WaveGenerator: public QObject
{
Q_OBJECT
public:
Michal Klocek
Fix previous broken commit
r145 WaveGenerator(QLineChartSeries* series1, QLineChartSeries* series2) :
Michal Klocek
minor. minssing hile
r134 m_series1(series1),
m_series2(series2),
m_wave(0),
m_step(2*PI/numPoints)
{
QTime now = QTime::currentTime();
qsrand((uint)now.msec());
int fluctuate = 100;
for (qreal x = 0; x <= 2*PI; x+=m_step) {
series1->add(x, fabs(sin(x)*fluctuate));
series2->add(x, fabs(cos(x)*fluctuate));
}
QObject::connect(&m_timer,SIGNAL(timeout()),this,SLOT(update()));
m_timer.setInterval(5000);
m_timer.start();
};
public slots:
void update()
{
int fluctuate;
for (qreal i = 0, x = 0; x <= 2*PI; x+=m_step, i++) {
fluctuate = qrand() % 100;
m_series1->set(i, x, fabs(sin(x)*fluctuate));
fluctuate = qrand() % 100;
m_series2->set(i, x, fabs(cos(x)*fluctuate));
}
}
private:
Michal Klocek
Fix previous broken commit
r145 QLineChartSeries* m_series1;
QLineChartSeries* m_series2;
Michal Klocek
minor. minssing hile
r134 int m_wave;
qreal m_step;
QTimer m_timer;
};