将颜色数组添加到 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;
}
我是 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;
}