qwt的examples下的spectrogram例子内的plot.cpp文件的SpectrogramData类下的value函数在这例子中是什么时候调用的?
class SpectrogramData: public QwtRasterData
{
public:
SpectrogramData():
QwtRasterData(QwtDoubleRect(-1.5, -1.5, 3.0, 3.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);
return 1.0 / (v1 * v1 + v2 * v2);
}};
还有图中画的轮廓线是根据以下一段程序形成的吗?它是怎么画出那个轮廓线的啊?
QwtValueList contourLevels;
for ( double level = 0.5; level < 10.0; level += 1.0 )
contourLevels += level;
d_spectrogram->setContourLevels(contourLevels);