PDA

View Full Version : QwtPolarCurve setData example ,QwtArraySeriesData ,QwtSeriesData< QwtPointPolar >



john_k
25th September 2014, 13:36
Hope this is usefull for those looking to set a series of polar points onto a QwtPolarPlot with QwtPolarCurve.

class PolarPointSeriesData : public QwtArraySeriesData<QwtPointPolar>
{
public:
PolarPointSeriesData(QVector<QwtPointPolar> samples)
{
setSamples(samples);
}
void setSamples(QVector<QwtPointPolar> samples)
{
d_samples.clear();
d_boundingRect = QRectF();
if (samples.count())
{
QwtInterval xInterval = QwtInterval(samples.at(0).azimuth(), samples.at(0).azimuth());
QwtInterval yInterval = QwtInterval(samples.at(0).radius(), samples.at(0).radius());
foreach (QwtPointPolar sample, samples)
{
d_samples << sample;
xInterval |= sample.azimuth();
yInterval |= sample.radius();
}
d_boundingRect = QRectF(xInterval.minValue(), yInterval.minValue(), xInterval.width(), yInterval.width());
}
}
QRectF boundingRect() const { return d_boundingRect; }
};


Then

PolarPointSeriesData *data = new PolarPointSeriesData(my_Points);

where my_points is a Qvector<QwtPointPolar>

then

my_QwtPolarCurve->setData(data);

then

my_QwtPolarCurve->attach(my_QwtPolarPlot);