如何将vtkSphere保存为VTK文件?

2024-06-26 02:10:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将多个球体保存到一个文件中,以便以后使用ParaView进行可视化。在

我得到的是一个文本文件,其中包含每个球体的位置和形状(半径)的信息。使用Python和VTK,我正在构建一个文件,以便在ParaView中可视化数据。现在我可以将球体的中心和半径保存为vtkUnstructuredGrid,稍后在ParaView中,我添加了一个球体glyph,以实现正确的可视化。这种方法是有效的,但是每次我必须可视化数据时手动添加字形是非常繁琐的。所以我想知道如何将球体作为一个整体保存到vtk文件中。在

我在玩vtkSphere,但找不到将球体保存到vtk文件的方法。在

现在问题又来了:如何将vtkSphere保存到VTK文件中?在

我愿意为我的问题提供其他解决方案的建议。在


Tags: 文件数据方法信息可视化半径中心形状
3条回答

Lib的答案是正确的,但是缺少一行代码使其正常工作。在对文件进行更改后,需要更新vtkSphereSource,使其在Paraview中工作。在

sphere = vtk.vtkSphereSource()
sphere.SetRadius(4)
sphere.SetCenter(0,0,1)
sphere.Update()
writer = vtk.vtkPolyDataWriter()
writer.SetInputData(sphere.GetOutput())
writer.SetFileName('mysphere.vtk')
writer.Update()

这将按预期生成文件。在

如果要从Paraview保存,只需在应用glyph后保存数据。在

如果要直接生成球体,请使用vtkSphereSource(而不是创建隐式函数的vtkSphere),例如用于剪辑过滤器或字形过滤器),然后将其输出连接到vtkwriter。 以下是创建和写入单个球体的代码:

sphere = vtk.vtkSphereSource()
sphere.SetRadius(4)
sphere.SetCenter(0,0,1)
writer = vtk.vtkPolyDataWriter()
writer.SetInputData(sphere.GetOutput())
writer.SetFileName('mysphere.vtk')
writer.Update()

您也可以直接用vtk代码创建glyph,请参见http://www.vtk.org/Wiki/VTK/Examples/Cxx/Visualization/ProgrammableGlyphFilter(在本例中,您使用vtkSphere作为glyph的源代码)

我认为必要的步骤是:

合并数据参见示例http://www.vtk.org/Wiki/VTK/Examples/Cxx/Filtering/CombinePolyData

并将结果写入VTP文件参见示例http://www.vtk.org/Wiki/VTK/Examples/Cxx/IO/WriteVTP

相关问题 更多 >