TVTK 管线

Python科学计算三维可视化
黄天羽嵩天

管线技术

Pipeline,流水线

分类

可视化管线(Visualization Pipeline)

将原始数据加工成图形数据的过程

  • TVTK对象说明
    CubeSource通过程序内部计算输出一组描述长方体的数据(PolyData)
    PolyDataMapper通过该映射器将数据Polydata映射为图形数据(mapper)
  • 
    #创建长方体数据源,同时设置其长宽高
    
    s = tvtk.CubeSource(x_length=1.0, y_length=2.0, z_length=3.0)
    
    #转换为图形数据
    
    m = tvtk.PolyDataMapper(input_connection=s.output_port)
  • 对象经由input_connectionoutput_port属性连接起来
    结果

图形管线(Graphics Pipeline)

图形数据加工为我们所看到的图像的过程

  • TVTK对象说明
    Actor场景中的一个实体。它包括一个图形数据(mapper),具有描述该实体的位置、方向、大小的属性。
    Renderer渲染的场景。它包括多个需要渲染的Actor。
    RenderWindow渲染用的图形窗口,它包括一个或者多个Render。
    RenderWindowINteractor给图形窗口提供一些用户交互功能,例如平移、旋转、放大缩小。这些交互式操作并不改变Actor或者图形数据的属性,只是调整场景中的照相机(Camera)的一些设置。
  • 
    # 创建一个Actor
    
    a = tvtk.Actor(mapper=m)
    
    # 创建一个Renderer,将Actor添加进去
    
    r = tvtk.Renderer(background=(0, 0, 0))
    r.add_actor(a)
    
    # 创建一个RenderWindow(窗口),将Renderer添加进去
    
    w = tvtk.RenderWindow(size=(300,300))
    w.add_renderer(r)
    
    # 创建一个RenderWindowInteractor(窗口的交互工具)
    
    i = tvtk.RenderWindowInteractor(render_window=w)
    
    # 开启交互
    
    i.initialize()
    i.start()
  • 结果图
    窗口

用 ivtk 工具观察管线

  • 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()
  • 图形界面
    ivtk

  • 输出构成三维立方体的点的坐标
    输出

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值