創(chuàng)建一個(gè)基本三維對(duì)象
tvtk.CubeSource()
s = tvtk.CubeSource(traits)
構(gòu)造具有一定traits屬性值的長方體數(shù)據(jù)源對(duì)象。
CubeSource對(duì)象的屬性
| 屬性 | 說明 |
|---|---|
| s.x_length | 長方體對(duì)象在X軸方向的長度 |
| s.y_length | 長方體對(duì)象在y軸方向的長度 |
| s.z_length | 長方體對(duì)象在z軸方向的長度 |
| s.center | 長方體對(duì)象所在坐標(biāo)系的原點(diǎn) |
| s. output_points_precision | 長方體對(duì)象的精度 |
| VTK方法 | TVTK | 說明 |
|---|---|---|
| Set/GetXLength() | x_length | 設(shè)置/獲取長方體對(duì)象在X軸方向的長度 |
| Set/GetYLength() | y_length | 設(shè)置/獲取長方體對(duì)象在Y軸方向的長度 |
| Set/GetZLength() | z_length | 設(shè)置/獲取長方體對(duì)象在Z軸方向的長度 |
| Set/GetCenter() | center | 設(shè)置/獲取長方體對(duì)象所在坐標(biāo)系的原點(diǎn) |
| ... |
TVTK庫的基本三維對(duì)象
| 三維對(duì)象 | 說明 |
|---|---|
| CubeSource | 立方體三維對(duì)象數(shù)據(jù)源 |
| ConeSource | 圓錐三維對(duì)象數(shù)據(jù)源 |
| CylinderSource | 圓柱三維對(duì)象數(shù)據(jù)源 |
| ArcSource | 圓弧三維對(duì)象數(shù)據(jù)源 |
| ArrowSource | 箭頭三維對(duì)象數(shù)據(jù)源 |
TVTK庫顯示一個(gè)三維對(duì)象
顯示一個(gè)長方體
from tvtk.api import tvtk
# 創(chuàng)建一個(gè)長方體數(shù)據(jù)源,并且同時(shí)設(shè)置其長寬高
s = tvtk.CubeSource(x_length=1.0, y_length=2.0, z_length=3.0)
# 使用PolyDataMapper將數(shù)據(jù)轉(zhuǎn)換為圖形數(shù)據(jù)
m = tvtk.PolyDataMapper(input_connection=s.output_port)
# 創(chuàng)建一個(gè)Actor
a = tvtk.Actor(mapper=m)
# 創(chuàng)建一個(gè)Renderer,將Actor添加進(jìn)去
r = tvtk.Renderer(background=(0, 0, 0))
r.add_actor(a)
# 創(chuàng)建一個(gè)RenderWindow(窗口),將Renderer添加進(jìn)去
w = tvtk.RenderWindow(size=(300,300))
w.add_renderer(r)
# 創(chuàng)建一個(gè)RenderWindowInteractor(窗口的交互工具)
i = tvtk.RenderWindowInteractor(render_window=w)
# 開啟交互
i.initialize()
i.start()
原始數(shù)據(jù)轉(zhuǎn)換為屏幕上圖像,TVTK對(duì)象共同協(xié)調(diào)完成:
tvtk.CubeSource
tvtk.PolyDataMapper
tvtk.Actor
tvtk.Renderer
tvtk.RenderWindow
tvtk.RenderWindowInteractor
在TVTK中,這種對(duì)象之間協(xié)調(diào)完成工作的過程被稱作管線(Pipeline)。
Reference :
中國大學(xué)MOOC北京理工大學(xué)Python科學(xué)計(jì)算三維可視化黃天羽、嵩天老師課件
課程主頁