2015-09-23 7 views
-1

Мне нужно сравнить два 2d вектора (vect_2d_a и vect_2d_b), и в результате я построю массив 2d vector/2d (vect_compare_result), содержащий разницу в значении vect_2d_a и vect_2d_b.Показать 2d вектор/2d массив в простой рисунок в C++ Qt

В основном я могу просто напечатать vect_compare_result и просмотреть его, но я хотел бы видеть его как фигуру с простыми ящиками, указывающую значение разности в пикселях (например, colorbar в matlab).

Можно ли отобразить простой 2d-вектор на фигуре с помощью Qimg или что-то в этом роде?

Priya

ответ

0

Предполагая, что размер вашего вектора 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); 
    } 
} 

Если вы хотите, чтобы ваши пиксели быть больше (например, одна коробка 5х5 реальных пикселей):

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); 
    } 
} 
+0

I я впервые использовал создатель Qt. Когда я пытаюсь #include , в нем нет такого файла или каталога. Я хотел бы знать, нужно ли мне загружать любой пакет или изменять какие-либо настройки, чтобы работать с QImg. – user3581370

+0

Я не знаю, информации слишком мало. Если вы установили QtCreator со всеми библиотеками, он должен быть там. Возможно, вам нужно установить некоторые пути в вашей системе. – prajmus

+2

Не используйте 'setPixel', это медленно. Прямой доступ к пиксельным данным. –

 Смежные вопросы

  • Нет связанных вопросов^_^