{
public:
SpectrogramData():
// QwtRasterData(QwtDoubleRect(-1.5, -1.5, 3.0, 3.0))
{
}
{
return new SpectrogramData();
}
{
}
virtual double value(double x, double y) const
{
const double c = 0.842;
const double v1 = x * x + (y-c) * (y+c);
const double v2 = x * (y+c) + x * (y+c);
if ((x < -1.5 || x > 1.5) || (y < -1.5 || y > 1.5))
return 0.0; // return 0 outside 3 unit box
return 1.0 / (v1 * v1 + v2 * v2);
}
};
{
#ifndef DO_TOP
enableAxis(xTop, true);
enableAxis(xBottom, false);
setAxisScale
(QwtPlot::xTop,
-5.0,
5.0);
#else
setAxisScale
(QwtPlot::xBottom,
-5.0,
5.0);
#endif
setAxisScale
(QwtPlot::yLeft,
-5.0,
5.0);
colorMap.addColorStop(0.1, Qt::cyan);
colorMap.addColorStop(0.6, Qt::green);
colorMap.addColorStop(0.95, Qt::yellow);
d_spectrogram->setColorMap(colorMap);
d_spectrogram->setData(SpectrogramData());
d_spectrogram->attach(this);
..... the rest of the code is the same......
class SpectrogramData: public QwtRasterData
{
public:
SpectrogramData():
// QwtRasterData(QwtDoubleRect(-1.5, -1.5, 3.0, 3.0))
QwtRasterData(QwtDoubleRect(-5.0, -5.0, 10.0, 10.0))
{
}
virtual QwtRasterData *copy() const
{
return new SpectrogramData();
}
virtual QwtDoubleInterval range() const
{
return QwtDoubleInterval(0.0, 10.0);
}
virtual double value(double x, double y) const
{
const double c = 0.842;
const double v1 = x * x + (y-c) * (y+c);
const double v2 = x * (y+c) + x * (y+c);
if ((x < -1.5 || x > 1.5) || (y < -1.5 || y > 1.5))
return 0.0; // return 0 outside 3 unit box
return 1.0 / (v1 * v1 + v2 * v2);
}
};
Plot::Plot(QWidget *parent):
QwtPlot(parent)
{
d_spectrogram = new QwtPlotSpectrogram();
#ifndef DO_TOP
enableAxis(xTop, true);
enableAxis(xBottom, false);
setAxisScale(QwtPlot::xTop, -5.0, 5.0);
#else
setAxisScale(QwtPlot::xBottom, -5.0, 5.0);
#endif
setAxisScale(QwtPlot::yLeft, -5.0, 5.0);
QwtLinearColorMap colorMap(Qt::darkCyan, Qt::red);
colorMap.addColorStop(0.1, Qt::cyan);
colorMap.addColorStop(0.6, Qt::green);
colorMap.addColorStop(0.95, Qt::yellow);
d_spectrogram->setColorMap(colorMap);
d_spectrogram->setData(SpectrogramData());
d_spectrogram->attach(this);
..... the rest of the code is the same......
To copy to clipboard, switch view to plain text mode
Bookmarks