本文主要是介绍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_connection
和output_port
属性连接起来
图形管线(Graphics Pipeline)
图形数据加工为我们所看到的图像的过程
-
TVTK对象 说明 Actor 场景中的一个实体。它包括一个图形数据(mapper),具有描述该实体的位置、方向、大小的属性。 Renderer 渲染的场景。它包括多个需要渲染的Actor。 RenderWindow 渲染用的图形窗口,它包括一个或者多个Render。 RenderWindowINteractor 给图形窗口提供一些用户交互功能,例如平移、旋转、放大缩小。这些交互式操作并不改变Actor或者图形数据的属性,只是调整场景中的照相机(Camera)的一些设置。 # 创建一个Actora = 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 GUIs = 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()
图形界面
输出构成三维立方体的点的坐标
这篇关于TVTK 管线的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!