##// END OF EJS Templates
Add animations to pie. Works but has some visual issues when adding slices.
Add animations to pie. Works but has some visual issues when adding slices.

File last commit:

r486:7ab45bf9f776
r618:249071e508d1
Show More
wavegenerator.h
60 lines | 1.3 KiB | text/x-c | CLexer
#include <QTimer>
#include <QTime>
#include <QObject>
#include <cmath>
#include <qlineseries.h>
QTCOMMERCIALCHART_USE_NAMESPACE
#define PI 3.14159265358979
static const int numPoints =100;
class WaveGenerator: public QObject
{
Q_OBJECT
public:
WaveGenerator(QLineSeries* series1, QLineSeries* 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->replace(x, fabs(sin(x)*fluctuate));
fluctuate = qrand() % 100;
m_series2->replace(x, fabs(cos(x)*fluctuate));
}
}
private:
QLineSeries* m_series1;
QLineSeries* m_series2;
int m_wave;
qreal m_step;
QTimer m_timer;
};