一、TVTK简单示例
以立方体对象为例
- 创建一个三维对象
from tvtk.api import tvtk
#设置属性,xyz轴上的长度,还可以设置center(坐标原点)
#output_points_precisio(对象的精度)
s = tvtk.CubeSource(x_length=1.0,y_length=2.0,z_length=3.0)
#查看数据源信息
print(s)
除了CubeSource(立方体三维对象数据源)外,tvtk还自带了ConeSource(圆锥三维对象数据源)、CylinderSource(圆柱三维对象数据源)、ArcSource(圆弧三维对象数据源)、ArrowSource(箭头三维对象数据源)
- 显示一个三维对象
#使用PolyDataMapper将数据转换为图形数据
m = tvtk.PolyDataMapper(input_connection=s.output_port)
#创建一个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()
得到结果
二、管线技术
管线技术(pipeline),在tvtk中可分为两类:可视化管线以及图像管线。
可视化管线:将原始数据加工成图形数据的过程
图像管线:将图形数据加工为图像的过程