嗨,我正在使用 qwtspectrogram 来绘制我的数组数据,但我遇到的问题是缩放.. qwt 比例分布在间隔 x 和 y 上,轴取决于像素。例如,如果我有一个 (500x500) 的数据集向量并且我想为 500mm x500mm 绘制它是完美的,因为它是在像素上平移的,但是如果我想为 300mmx300mm 绘制 500x500 的点数它是一团糟,它显示在情节 500x500 我知道我必须管理 x 和 y 轴,但我不知道该怎么做。我设法玩了一点,在 250mmx250mm 的区域显示 500x500,但不能为其他人做。我的代码如下所示
class mydata: public QwtRasterData
{
char filepath[35];
QFile myfile;
QVector<qint16> fileBuf;
int pixel =500; // it represents the number of pixels in one row or column
int dial =1000;
public:
mydata()
{
setInterval( Qt::XAxis, QwtInterval( 0, (pixel)-1 ) );
setInterval( Qt::YAxis, QwtInterval( 0, (pixel)-1 ) );
setInterval( Qt::ZAxis, QwtInterval( -dial, dial ) );
{
sprintf_s(filepath, "c:\\myfile.bin");
myfile.setFileName(filepath);
if(!myfile.open(QIODevice::ReadOnly)) return;
QDataStream data(&myfile);
data.setByteOrder(QDataStream::LittleEndian);
while(!data.atEnd()) {
qint16 x;
data >> x;
fileBuf.append(x);
}
myfile.close();
}
}
virtual double value( double x, double y ) const//shifted
{
int x_pos = static_cast<int>(x);
int y_pos = static_cast<int>(y);
double c = (fileBuf[ ((x_pos)+((pixel-(y_pos))*pixel))]);
return c;
}
}
简而言之,我对不同区域有相同数量的像素,但我在图中有相同的轴表示。