如何将 vtkSphere 保存到 VTK 文件
How to save a vtkSphere to a VTK file?
我正在尝试将多个球体保存到一个文件中,以便以后使用 ParaView 进行可视化。
我有一个文本文件,其中包含有关每个球体的位置和形状(半径)的信息。使用Python和VTK,我正在构建一个文件来可视化ParaView中的数据。现在,我可以将球体的中心和半径保存为vtkUnstructuredGrid
,稍后在 ParaView 中,我将添加一个球体字形以实现正确的可视化。这种方法有效,但每次我必须可视化数据时手动添加字形非常繁琐。所以我试图弄清楚如何将球体作为一个整体保存到 vtk 文件中。
我正在玩vtkSphere
但找不到将球体保存到 vtk 文件的方法。
现在问题又是:如何将 vtkSphere 保存到 VTK 文件?
我愿意接受有关我问题的替代解决方案的建议。
从 Paraview 保存,只需在应用字形后保存数据即可。
如果要直接生成球体,请使用 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 代码创建字形,请参阅 http://www.vtk.org/Wiki/VTK/Examples/Cxx/Visualization/ProgrammableGlyphFilter(在这种情况下,您使用 vtkSphere
作为字形的源)
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()
这将按预期生成文件。
我认为必要的步骤是:
合并数据请参阅示例 http://www.vtk.org/Wiki/VTK/Examples/Cxx/Filtering/CombinePolyData
并将结果写入 VTP 文件,请参阅示例 http://www.vtk.org/Wiki/VTK/Examples/Cxx/IO/WriteVTP
- .cpp和.h文件中的模板专用化声明
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 文本文件中的单词链表
- Qt VTK交互风格的信号到小部件
- CMake-按正确顺序将项目与C运行时对象文件链接
- 使用新行和不使用新行读取文件
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 在 VTK 下保存网格文件
- 以二进制格式写入 vtk 文件
- C++VTK从多个文件中读取和保存数据
- 如何在C++中编写带有 VTK 的标量文件
- 将 Obj 文件导入 vtk
- 如何将 vtkSphere 保存到 VTK 文件
- 正在读取.vtk文件
- Cmake编译目录中具有VTK依赖项的所有c++文件
- 写入二进制 VTK 文件时出错
- 无法启动使用 vtk 的可执行文件
- 什么软件可以可视化VTK文件格式
- Vtk读取dicom文件
- 使用vtkGenericDataObjectReader读取.vtk二进制文件