VTK/paraview 的 3D 可视化

3D visualisation with VTK/paraview

这是我的问题: 我有一个二维域(比如一个正方形)以非结构化方式分成三角形。在每个三角形(表示为 T)上,我定义了一个常量标量,表示为 f(T)。

我想使用 Paraview 绘制曲面 (T,f(T))。

所以我创建了一个这样的 vtk 文件:

vtk DataFile Version 3.1

my personnal comment here

ASCII DATASET UNSTRUCTURED_GRID

POINTS 4 FLOAT

0 0 0

0 1 0

1 0 0

1 1 0

CELLS 2 8

3 0 1 2

3 1 2 3

CELL_TYPES 2

5 5

CELL_DATA 2

SCALARS Namedata double

LOOKUP_TABLE default

2

-5

我想看(感谢 Paraview)3D 情节。理想情况下,此示例的可视化应该是两个三角形:第一个三角形的 z 坐标应等于 2,第二个三角形的 z 坐标应等于 -5。我不知道是否有可能,或者 vtk 格式是否适合我正在尝试做的事情。

如果不可能,我很乐意只表示两个点(三角形编号 1 的 x 坐标,三角形编号 1 的 y 坐标,z 坐标 = 2)和(x-三角形编号 2 的坐标,三角形编号 2 的 y 坐标,z 坐标 = -5) 有或没有插值。

这在 ParaView 中并不难做到。有一个名为 "Warp By Scalar" 的过滤器,它可以基于标量场在 z 方向(或任何其他方向)平移几何。唯一的问题是 Warp By Scalar 适用于点数据,而您想按单元格数据进行扭曲。所以你必须先完成几个步骤。

  1. 将 "Shrink" 过滤器添加到您的数据中。将 "Scale Factor" 参数设置为 1。应用。你的数据看起来是一样的,但它会产生分解三角形的效果,这些三角形实际上在你的原始数据中共享点。

  2. 将 "Cell Data to Point Data" 过滤器添加到收缩过滤器的输出。申请.

  3. 将 "Warp By Scalar" 过滤器添加到单元格数据到点数据的输出。申请.