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

问题描述 投票:0回答:1

我是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定义?附言我从VTK网站上看到了一些示例,但仍然没有解决问题

最诚挚的问候,

kerim

c++ arrays vtk
1个回答
0
投票
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;
}
© www.soinside.com 2019 - 2024. All rights reserved.