У меня есть вопрос, связанный с отображением с помощью QcustomPlot Colormap FEM данных.
Данные имеют следующую форму:
X Y Z
0.000000 0.000000 0.000020
0.000000 0.010769 0.003000
0.010769 0.000000 0.000400
0.000000 0.041683 0.000050
0.020058 0.020058 0.003000
0.040024 0.000000 0.001000
0.000000 0.072596 0.001000
0.035689 0.035689 0.000030
0.069279 0.000000 0.000200
0.000000 0.134423 0.000200
Поскольку распределение по осям X и Y не является постоянным, я не знаю, как создать матрицы, используя
colorMap->data()->cellToCoord(xIndex, yIndex, &x, &y);
colorMap->data()->setCell(xIndex, yIndex, z);
Если у кого-то есть предложение использовать другой тип библиотеки, пожалуйста, пишите.
Вместо cellToCoord вы должны использоватьordinToCell, который преобразует координаты графика, заданные ключом и значением, в индексы ячеек экземпляра QCPColorMapData.
colorMap->data()->coordToCell(x, y, &xIndex, &yIndex);
colorMap->data()->setCell(xIndex, yIndex, z);
когда вы положили:
colorMap->data()->coordToCell(x, y, &xIndex, &yIndex);
Вы изменяете индекс «для».
Я ставлю дополнительный индекс и решаю вопрос.
nt xI=0;
int yI=0;
for (int xIndex=0; xIndex<nx; ++xIndex, xI++)
{
for (int yIndex=0; yIndex<ny; ++yIndex, yI++)
{
colorMap->data()->coordToCell(x[xIndex], y[yIndex], &xI, &yI);
colorMap->data()->setCell(xI, yI, z[xI+yI]);
}
}