如何在python-vtk中隐藏指定索引的actor
VTK隐藏指定索引Actor的实现方法
- vtkActor类原生支持显隐状态控制,不需要从渲染器中移除实例,仅需修改可见性属性即可实现隐藏/显示切换。
- 你需要先将场景中所有Actor按顺序存入列表,通过索引定位到目标Actor后调用对应接口即可。
核心API
- 隐藏指定Actor:
target_actor.SetVisibility(0) - 恢复显示指定Actor:
target_actor.SetVisibility(1) - 查询当前可见性:
target_actor.GetVisibility(),返回1为可见,0为隐藏
完整示例代码
import vtk # 初始化渲染组件 renderer = vtk.vtkRenderer() render_window = vtk.vtkRenderWindow() render_window.AddRenderer(renderer) interactor = vtk.vtkRenderWindowInteractor() interactor.SetRenderWindow(render_window) # 创建多个Actor并按索引存入列表 actor_list = [] for idx in range(5): # 生成立方体示例Actor cube_source = vtk.vtkCubeSource() mapper = vtk.vtkPolyDataMapper() mapper.SetInputConnection(cube_source.GetOutputPort()) actor = vtk.vtkActor() actor.SetMapper(mapper) # 错位摆放避免重叠 actor.SetPosition(idx * 2.5, 0, 0) # 添加到渲染器并存入索引列表 renderer.AddActor(actor) actor_list.append(actor) # 隐藏索引为2的第三个Actor(索引从0开始计数) target_idx = 2 if 0 <= target_idx < len(actor_list): actor_list[target_idx].SetVisibility(0) # 触发渲染 render_window.Render() interactor.Start()
提示:修改可见性属性后如果界面没有自动更新,手动调用
render_window.Render()即可触发重绘生效。
内容的提问来源于stack exchange,提问作者Chengyu Zhou
相关产品推荐
相关产品推荐

