创建一个基本三维对象
tvtk.CubeSource()
s = tvtk.CubeSource(traits)
构造具有一定traits属性值的长方体数据源对象。
CubeSource对象的属性
| 属性 | 说明 |
|---|---|
| s.x_length | 长方体对象在X轴方向的长度 |
| s.y_length | 长方体对象在y轴方向的长度 |
| s.z_length | 长方体对象在z轴方向的长度 |
| s.center | 长方体对象所在坐标系的原点 |
| s. output_points_precision | 长方体对象的精度 |
| VTK方法 | TVTK | 说明 |
|---|---|---|
| Set/GetXLength() | x_length | 设置/获取长方体对象在X轴方向的长度 |
| Set/GetYLength() | y_length | 设置/获取长方体对象在Y轴方向的长度 |
| Set/GetZLength() | z_length | 设置/获取长方体对象在Z轴方向的长度 |
| Set/GetCenter() | center | 设置/获取长方体对象所在坐标系的原点 |
| ... |
TVTK库的基本三维对象
| 三维对象 | 说明 |
|---|---|
| CubeSource | 立方体三维对象数据源 |
| ConeSource | 圆锥三维对象数据源 |
| CylinderSource | 圆柱三维对象数据源 |
| ArcSource | 圆弧三维对象数据源 |
| ArrowSource | 箭头三维对象数据源 |
TVTK库显示一个三维对象
显示一个长方体
from tvtk.api import tvtk
# 创建一个长方体数据源,并且同时设置其长宽高
s = tvtk.CubeSource(x_length=1.0, y_length=2.0, z_length=3.0)
# 使用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()
原始数据转换为屏幕上图像,TVTK对象共同协调完成:
tvtk.CubeSource
tvtk.PolyDataMapper
tvtk.Actor
tvtk.Renderer
tvtk.RenderWindow
tvtk.RenderWindowInteractor
在TVTK中,这种对象之间协调完成工作的过程被称作管线(Pipeline)。
Reference :
中国大学MOOC北京理工大学Python科学计算三维可视化黄天羽、嵩天老师课件
课程主页