在 C++ Qt 中将 2d vector/2d 数组显示为简单图形
Display 2d vector/2d array into simple figure in c++ Qt
我必须比较两个 2d 向量(vect_2d_a
和 vect_2d_b
),因此我将构造一个包含差异的 2d vector/2d 数组(vect_compare_result
)在 vect_2d_a
和 vect_2d_b
的值中。
基本上我可以简单地打印 vect_compare_result
并查看它,但我希望将其视为一个带有简单框的图形,以像素为单位指示差异值(如 matlab 中的颜色栏)。
是否可以使用 Qimg
或其他方式将简单的二维矢量显示为图形?
普里亚
假设你的向量大小是n x n
:
QImage image(n, n, QImage::Format_RGB32);
QRgb value;
for (int i=0;i<N;++i) {
for (int j=0;j<N;++j) {
value = getColor(vect_compare_result); //a function that returns color based on value
image.setPixel(i, j, value);
}
}
如果你想让你的像素更大(比如一个盒子是 5x5 真实像素):
int box_size = 5;
QImage image(n * box_size, n * box_size, QImage::Format_RGB32);
QRgb value;
for (int i=0;i<N;++i) {
for (int j=0;j<N;++j) {
value = getColor(vect_compare_result);
for (int k=0;k<box_size;++k)
for (int l=0;l<box_size;++l)
image.setPixel(i+k, j+l, value);
}
}
我必须比较两个 2d 向量(vect_2d_a
和 vect_2d_b
),因此我将构造一个包含差异的 2d vector/2d 数组(vect_compare_result
)在 vect_2d_a
和 vect_2d_b
的值中。
基本上我可以简单地打印 vect_compare_result
并查看它,但我希望将其视为一个带有简单框的图形,以像素为单位指示差异值(如 matlab 中的颜色栏)。
是否可以使用 Qimg
或其他方式将简单的二维矢量显示为图形?
普里亚
假设你的向量大小是n x n
:
QImage image(n, n, QImage::Format_RGB32);
QRgb value;
for (int i=0;i<N;++i) {
for (int j=0;j<N;++j) {
value = getColor(vect_compare_result); //a function that returns color based on value
image.setPixel(i, j, value);
}
}
如果你想让你的像素更大(比如一个盒子是 5x5 真实像素):
int box_size = 5;
QImage image(n * box_size, n * box_size, QImage::Format_RGB32);
QRgb value;
for (int i=0;i<N;++i) {
for (int j=0;j<N;++j) {
value = getColor(vect_compare_result);
for (int k=0;k<box_size;++k)
for (int l=0;l<box_size;++l)
image.setPixel(i+k, j+l, value);
}
}