You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 04:06:08