gpt4 book ai didi

c++ - 如何在 VTK 中制作简单的二维等高线图?

转载 作者:行者123 更新时间:2023-11-28 08:18:24 25 4
gpt4 key购买 nike

我正在死记硬背 VTK 示例,以了解如何绘制我创建的数据的简单等高线图。假设我已经在结构化矩形网格上的 71x71 域中解决了一个简单的 PDE,其中节点之间的距离相等。

我检查了 filledContours 的例子它讲述了如何可视化来自 *.vtp 文件的数据。只要我可以编写 .vtp 文件,我就可以接受。问题是我不知道如何创建适合等高线绘图的 .vtp 数据文件。我设法从嵌入式角色(例如球体或圆锥体)创建 .vtp 文件,但我不知道如何使用我的 2D 数据阵列来完成。

最佳答案

由于您需要等距网格,我会使用基于 vtk xml 的 ImageData 格式 (*.vti)。

来自 http://www.cacr.caltech.edu/~slombey/asci/vtk/vtk_formats.simple.html :

"� ImageData — 每个 ImageData 片段指定其在数据集整个范围内的范围。点和单元格 ...由范围、原点和间距隐式描述。请注意,原点和间距在所有片段中都是恒定的,因此它们被指定为 ImageData XML 元素的属性,如下所示。

<VTKFile type=" ImageData" ...> 
<ImageData WholeExtent=" x1 x2 y1 y2 z1 z2"
Origin=" x0 y0 z0" Spacing=" dx dy dz">
<Piece Extent=" x1 x2 y1 y2 z1 z2">
<PointData>...</ PointData>
<CellData>...</ CellData>
</ Piece>
</ ImageData>
</ VTKFile>

-链接信息结束"请注意,只有 x0 y0 z0 和 dx dy dz 是实数,WholeExtent 和 PieceExtent 指的是像素索引。

2D map with 10x10 pixels visualized on Paraview此示例将向您展示一张 10x10 像素的 map ,其中温度从左下角到右上角。值与每个单元格相关联。您可以将此格式调整为您的 2D 数据。文件内容(注意我只使用 CellData):

例子.vti:

<VTKFile type="ImageData" version="0.1" byte_order="LittleEndian">
<ImageData WholeExtent=" 0 10 0 10 0 1" Origin=" 0 0 0" Spacing=" 1 1 0">

<Piece Extent=" 0 10 0 10 0 1">

<CellData Scalars="scalars">
<DataArray type="Float32" Name="Temperature[C]" format="ascii">
1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
21 22 23 24 25 26 27 28 29 30
31 32 33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48 49 50
51 52 53 54 55 56 57 58 59 60
61 62 63 64 65 66 67 68 69 70
71 72 73 74 75 76 77 78 79 80
81 82 83 84 85 86 87 88 89 90
91 92 93 94 95 96 97 98 99 100
</DataArray>
</CellData>

</Piece>

</ImageData>
</VTKFile>

关于c++ - 如何在 VTK 中制作简单的二维等高线图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6841728/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com