将颜色数组添加到 vtkImageData C++

Add color array to vtkImageData C++

我是 VTK 的新手,我正在尝试了解基础知识。

假设我需要显示三维结构化数据 (vtkImageData),其中包含:nx = 10, ny = 10, nz = 10 其中 nx/ny/nz - 每个维度上的点数。对于每个点 (x,y,z),我都有一个值 val(x,y,z)。所以每个节点的颜色由val定义。 正如我在 C++ 中所知,我会写:

int main(int argc, char *argv[])
{
// Create an image data
vtkSmartPointer<vtkImageData> imageData =
  vtkSmartPointer<vtkImageData>::New();

// Specify the size of the image data
int nx = 10;
int ny = 10;
int nz = 10;
imageData->SetDimensions(nx,ny,nz);
imageData->SetSpacing(1.0, 1.0, 1.0);
imageData->SetOrigin(0.0, 0.0, 0.0); 

double val[1000];
for (int i = 0; i < 1000; i++){
    data[i] = i;
}

// after that I need to set val-array as color for imageData object

return 0;
}

如何设置val[1000]数组为imageData让每个节点的颜色由val定义? P.S。我已经从 VTK 网站上看到了一些例子,但仍然没有解决问题

此致,

克里姆

int main(int argc, char *argv[])
{
// Create an image data
vtkNew<vtkImageData> imageData;

// Specify the size of the image data
int nx = 10;
int ny = 10;
int nz = 10;
imageData->SetDimensions(nx,ny,nz);
imageData->SetSpacing(1.0, 1.0, 1.0);
imageData->SetOrigin(0.0, 0.0, 0.0); 

vtkNew<vtkDoubleArray> array;
array->SetName("Name");
double val[1000];
for (int i = 0; i < 1000; i++){
    array->InsertNextValue(i);
}

image->GetPointData()->AddArray(array);

return 0;
}