我有2d的二维数组(大小为20x30):
double a[20*30];
如何使用VTK对其进行可视化?很难找到适当的文档。我找到的最接近的示例是this,但是它使用3个代表颜色的无符号字符作为输入。据我了解,我应该使用vtkScalarsToColors类以某种方式将标量映射到颜色,但是我不知道如何将所有内容都放入单个代码中。
答案 0 :(得分:1)
您可能想要做的是将标量分配给曲面或体积网格的点或像元。然后,VTK可以处理可视化。在以下示例中对此进行了演示:ScalarBarActor。对于基本用法,请遵循Scalars示例。
但是,您需要自己提供要将值映射到的合适的网格。从您的问题来看,“值如何可视化二维数组”的含义并不完全清楚。如果要在平面20x30网格中分配标量值,则需要首先创建具有三角形或四边形像元的表面对象(类型为vtkPolyData
),然后使用{{ 1}},如以上示例所示。
在这种情况下,方便的是vtkPlaneSource
,请看here作为相应的示例。您可以分别使用surface->GetPointData()->SetScalars()
或SetXResolution()
设置的网格点数。 (如果尚不清楚:SetYResolution()
继承vtkPolyDataAlgorithm
,要访问基础vtkPlaneSource
对象,请使用方法vtkPolyData
)
更新:我添加了示例代码来演示该过程-使用python,以提高可读性。
GetOutput()
结果将类似于以下内容: