##// END OF EJS Templates
Experimenting
Experimenting

File last commit:

r145:251cad7c49ee
r417:ac4db33427b7
Show More
wavegenerator.h
60 lines | 1.3 KiB | text/x-c | CLexer
#include <QTimer>
#include <QTime>
#include <QObject>
#include <cmath>
#include <qlinechartseries.h>
QTCOMMERCIALCHART_USE_NAMESPACE
#define PI 3.14159265358979
static const int numPoints =100;
class WaveGenerator: public QObject
{
Q_OBJECT
public:
WaveGenerator(QLineChartSeries* series1, QLineChartSeries* series2) :
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:
QLineChartSeries* m_series1;
QLineChartSeries* m_series2;
int m_wave;
qreal m_step;
QTimer m_timer;
};