如何在vtk中可视化二维数组

时间:2018-08-08 13:03:00

标签: c++ vtk

我有2d的二维数组(大小为20x30):

double a[20*30];

如何使用VTK对其进行可视化?很难找到适当的文档。我找到的最接近的示例是this,但是它使用3个代表颜色的无符号字符作为输入。据我了解,我应该使用vtkScalarsToColors类以某种方式将标量映射到颜色,但是我不知道如何将所有内容都放入单个代码中。

1 个答案:

答案 0 :(得分:1)

您可能想要做的是将标量分配给曲面或体积网格的点或像元。然后,VTK可以处理可视化。在以下示例中对此进行了演示:ScalarBarActor。对于基本用法,请遵循Scalars示例。

但是,您需要自己提供要将值映射到的合适的网格。从您的问题来看,“值如何可视化二维数组”的含义并不完全清楚。如果要在平面20x30网格中分配标量值,则需要首先创建具有三角形或四边形像元的表面对象(类型为vtkPolyData),然后使用{{ 1}},如以上示例所示。

在这种情况下,方便的是vtkPlaneSource,请看here作为相应的示例。您可以分别使用surface->GetPointData()->SetScalars()SetXResolution()设置的网格点数。 (如果尚不清楚:SetYResolution()继承vtkPolyDataAlgorithm,要访问基础vtkPlaneSource对象,请使用方法vtkPolyData


更新:我添加了示例代码来演示该过程-使用python,以提高可读性。

GetOutput()

结果将类似于以下内容:

enter image description here