首页 > 解决方案 > vtkContourGrid 示例

问题描述

我正在尝试从非结构化网格制作等高线图。我的代码不起作用,我找不到要遵循的示例。我没有包含输入文件,希望可以轻松找到示例非结构化网格。我设法通过将单元格数据转换为点数据然后绘制“p”标量来在 Paraview 上工作。但我不能用 vtk 做到这一点。我的代码有什么问题?

from vtk import *

file_name = "results.vtk"

reader = vtkUnstructuredGridReader()
reader.SetFileName(file_name)
reader.Update() 
output = reader.GetOutput()
scalar_range = output.GetScalarRange()

c2p = vtkCellDataToPointData()
c2p.SetInputData(output)

contours = vtkContourGrid()
contours.SetInputData(c2p.GetOutput())
contours.SetValue(0, 0.007009505294263363)

gridmapper = vtkDataSetMapper()
gridmapper.SetInputData(output)
gridmapper.GetInput().GetCellData().SetActiveScalars("p")
gridmapper.SetScalarVisibility(1)
gridmapper.SetScalarRange(scalar_range)

mapper = vtkPolyDataMapper()
#mapper = vtkDataSetMapper()
mapper.SetInputConnection(contours.GetOutputPort())

actor = vtkActor()
actor.SetMapper(mapper)

gridactor = vtkActor()
gridactor.SetMapper(gridmapper)
gridactor.GetProperty().EdgeVisibilityOn()

renderer = vtkRenderer()
renderer.AddActor(actor)
renderer.AddActor(gridactor)
#renderer.SetBackground(1, 1, 1) # Set background to white

renderer_window = vtkRenderWindow()
renderer_window.AddRenderer(renderer)

interactor = vtkRenderWindowInteractor()
interactor.SetRenderWindow(renderer_window)
interactor.Initialize()
interactor.Start()

标签: pythonvtk

解决方案


推荐阅读