3. TVTK的管线

本文介绍了TVTK的管线技术,包括可视化管线和图形管线的概念,详细讲解了TVTK如何处理数据并生成图像。同时,针对管线中的问题,如dialog子窗口与主窗口分离的bug,提供了代码解决方案,通过打印顶点位置信息来调试,并提到了相机属性的编辑方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.管线技术(Pipeline,流水线)

  • 可视化管线(Visualization Pipeline):将原始数据加工成图形数据的过程。
  • 图形管线(Graphics Pipeline):图形数据加工为我们所看到的图像的过程。

2.TVTK的管线

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

3. 用TVTK工具观察管线

from tvtk.api import tvtk
from tvtk.tools import ivtk
from pyface.api import GUI

s = tvtk.CubeSource(x_length=1.0, y_length=2.0, z_length=3.0)
m = tvtk.PolyDataMapper(input_connection=s.output_port)
a = tvtk.Actor(mapper=m)

# 创建一个带Crust(Python Shell)的窗口
gui = GUI()
win = ivtk.IVTKWithCrustAndBrowser()
win.open()
win.scene.add_actor(a)

# 开始界面消息循环
gui.start_event_loop()

这里会有一个bug,导致dialog子窗口与主窗口分离。
可以用以下代码进行修改:

from tvtk.api import tvtk
from tvtk.tools import ivtk
from pyface.api import GUI

s = tvtk.CubeSource(x_length=1.0, y_length=2.0, z_length=3.0)
m = tvtk.PolyDataMapper(input_connection=s.output_port)
a = tvtk.Actor(mapper=m)

# 创建一个带Crust(Python Shell)的窗口
gui = GUI()
win = ivtk.IVTKWithCrustAndBrowser()
win.open()
win.scene.add_actor(a)

# 修正窗口错误
dialog = win.control.centralWidget().widget(0).widget(0)
from pyface.qt import QtCore

dialog.setWindowFlags(QtCore.Qt.WindowFlags(0x00000000))
dialog.show()

gui.start_event_loop()

这里写图片描述

在下面的shell输入print(scene.renderer.actors[0].mapper.input.points.to_array())
可以得到构成长方体的顶点的位置信息。
照相机:

这里写图片描述

这里写图片描述

Edit Properties:

这里写图片描述

对以上代码进行封装:

# Tvtkfunc.py
from tvtk.api import tvtk

def ivtk_scene(actors):
    from tvtk.tools import ivtk
    # 创建一个带Crust(Python Shell)的窗口
    win = ivtk.IVTKWithCrustAndBrowser()
    win.open()
    win.scene.add_actor(actors)
    # 修正窗口错误
    dialog = win.control.centralWidget().widget(0).widget(0)
    from pyface.qt import QtCore
    dialog.setWindowFlags(QtCore.Qt.WindowFlags(0x00000000))
    dialog.show()
    return win


def event_loop():
    from pyface.api import GUI
    gui = GUI()
    gui.start_event_loop()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值