1
#include <qapplication.h>
4
#include <qwt_symbol.h>
5
#include <qwt_curve_fitter.h>
9
//------------------------------------------------------------
12
// This example shows a simple animation featuring
13
// with several QwtPlotCurves
15
//------------------------------------------------------------
24
// Arrays holding the values
34
// CONSTRUCT MAIN WINDOW
39
setFrameStyle(QFrame::Box|QFrame::Raised);
43
const QColor bgColor(30,30,50);
44
#if QT_VERSION < 0x040000
45
setPaletteBackgroundColor(bgColor);
47
QPalette p = palette();
48
p.setColor(backgroundRole(), bgColor);
52
QwtSplineCurveFitter* curveFitter;
58
xMap[i].setScaleInterval(-1.5, 1.5);
59
yMap[i].setScaleInterval(0.0, 6.28);
61
curve[i].setPen(QPen(QColor(150,150,200),2));
62
curve[i].setCurveType(QwtPlotCurve::Xfy);
63
curve[i].setStyle(QwtPlotCurve::Lines);
64
curve[i].setCurveAttribute(QwtPlotCurve::Fitted, true);
65
curveFitter = new QwtSplineCurveFitter();
66
curveFitter->setSplineSize(150);
67
curve[i].setCurveFitter(curveFitter);
70
sym.setStyle(QwtSymbol::XCross);
71
sym.setPen(QPen(Qt::yellow,2));
74
curve[i].setSymbol(sym);
76
curve[i].setRawData(yval,xval,Size);
82
xMap[i].setScaleInterval(0.0, 6.28);
83
yMap[i].setScaleInterval(-3.0, 1.1);
84
curve[i].setPen(QPen(QColor(200,150,50), 1, Qt::DashDotDotLine));
85
curve[i].setStyle(QwtPlotCurve::Sticks);
86
curve[i].setSymbol(QwtSymbol(QwtSymbol::Ellipse,
87
QColor(Qt::blue), QColor(Qt::yellow), QSize(5,5)));
89
curve[i].setRawData(xval,zval,Size);
96
xMap[i].setScaleInterval(-1.1, 3.0);
97
yMap[i].setScaleInterval(-1.1, 3.0);
98
curve[i].setStyle(QwtPlotCurve::Lines);
99
curve[i].setCurveAttribute(QwtPlotCurve::Fitted, true);
100
curve[i].setPen(QColor(100,200,150));
101
curveFitter = new QwtSplineCurveFitter();
102
curveFitter->setFitMode(QwtSplineCurveFitter::ParametricSpline);
103
curveFitter->setSplineSize(200);
104
curve[i].setCurveFitter(curveFitter);
106
curve[i].setRawData(yval,zval,Size);
113
xMap[i].setScaleInterval(-5, 1.1);
114
yMap[i].setScaleInterval(-1.1, 5.0);
115
curve[i].setStyle(QwtPlotCurve::Lines);
116
curve[i].setCurveAttribute(QwtPlotCurve::Fitted, true);
117
curve[i].setPen(QColor(Qt::red));
118
curveFitter = new QwtSplineCurveFitter();
119
curveFitter->setSplineSize(200);
120
curve[i].setCurveFitter(curveFitter);
122
curve[i].setRawData(uval,vval,USize);
127
double base = 2.0 * M_PI / double(USize - 1);
129
for (i = 0; i < USize; i++)
131
uval[i] = toggle * cos( double(i) * base);
132
vval[i] = toggle * sin( double(i) * base);
145
(void)startTimer(250);
148
#if QT_VERSION >= 0x040000
149
void MainWin::paintEvent(QPaintEvent *event)
151
QFrame::paintEvent(event);
153
QPainter painter(this);
154
painter.setClipRect(contentsRect());
155
drawContents(&painter);
159
void MainWin::drawContents(QPainter *painter)
161
const QRect &r = contentsRect();
163
for ( int i = 0; i < curveCount; i++ )
165
xMap[i].setPaintInterval(r.left(), r.right());
166
yMap[i].setPaintInterval(r.top(), r.bottom());
167
curve[i].draw(painter, xMap[i], yMap[i], r);
174
void MainWin::timerEvent(QTimerEvent *)
181
// RE-CALCULATE VALUES
183
void MainWin::newValues()
186
static double phs = 0.0;
191
xval[i] = 6.28 * double(i) / double(Size -1);
192
yval[i] = sin(xval[i] - phs);
193
zval[i] = cos(3.0 * (xval[i] + phs));
198
for (i=0; i<USize;i++)
201
uval[i] = uval[i] * c - vval[i] * s;
202
vval[i] = vval[i] * c + u * s;
211
int main (int argc, char **argv)
213
QApplication a(argc, argv);
217
#if QT_VERSION < 0x040000