我是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
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;
}