void MatrixHeatImaging(const DoubleMatrix &m, double minimum, double maximum, QPixmap &pixmap, int width, int height) { pixmap = QPixmap(QSize(width, height)); pixmap.fill(Qt::white); QPainter painter(&pixmap); unsigned int rows = m.rows(); unsigned int cols = m.cols(); for (unsigned int j=0; j<rows; j++) { for (unsigned int i=0; i<cols; i++) { double u = m.at(j,i); double ratio = 0.0; if (minimum!=maximum) ratio = 2.0 * (u-minimum) / (maximum - minimum); int b = int(MAX(0, 255*(1 - ratio))); int r = int(MAX(0, 255*(ratio - 1))); int g = 255 - b - r; QColor c(r, g, b); painter.setPen(c); painter.drawPoint(i,height-j-1); } } }
void HeatControl2Delta::write(const char *fileName, const DoubleMatrix& m) { FILE* f = fopen(fileName, "w"); for (unsigned int j=0; j<m.rows(); j++) { for (unsigned int i=0; i<m.cols(); i++) { if (i==0) fprintf(f, "%.10f", m[j][i]); else fprintf(f, " %.10f", m[j][i]); } fprintf(f, "\n"); } fclose(f); }