安裝:
pip install vtk
學習一個東西最快的方法是知道基本原理和用途
VTK有啥用
不能做游戲。適合快速開發繪制靜態三維模型。所以類似多用途折疊工具刀用處多,但是不能用在特別費勁的場合。
VTK工作流程(大致看看對vtk各模塊做的事有點印象即可)
1. 讀取數據
vtkStructuredPointsReader()
讀取*.vtk
文件vtkSTLReader()
讀取*.stl
文件
2. 過濾(自己寫算法)
3. 建圖(將點拼接在一起並填充):vtkPolyDataMapper(vtkPolyData)
4. 執行單元: vtkActor()
一個獨立三維模型、一個立方體、一個球就是一個執行單元,這是個對象。它有自己的屬性(紋理、朝向、位置等)。
5. 渲染vtkRenderer()
將各個執行單元和背景安裝某個視角繪制在一起。此時還看不到圖形,因為沒有創建窗口。第6步才是創建窗口。
6. 創建渲染窗口 vtkRenderWindow()
7. 交互控制vtkRenderWindowInteractor()
就是我們平常用鼠標可以拖來拖去旋轉着看三維模型就是這個類負責。
VTK編程實踐(可以細節的看了):畫一個立方體
百年不變的步驟:
python使用vtk繪制立方體代碼(不理解的可以回頭看看vtk各部分做什么的):
import vtk
# 1. 讀取數據
cube = vtk.vtkCubeSource()
cube.Update()#記得加這句不加看不到模型
# 2. 建圖(將點拼接成立方體)
cube_mapper = vtk.vtkPolyDataMapper()
cube_mapper.SetInputData(cube.GetOutput())
# 3. 根據2創建執行單元
cube_actor = vtk.vtkActor()
cube_actor.SetMapper(cube_mapper)
cube_actor.GetProperty().SetColor(1.0, 0.0, 0.0)
# 4. 渲染(將執行單元和背景組合在一起按照某個視角繪制)
renderer = vtk.vtkRenderer()
renderer.SetBackground(0.0, 0.0, 0.0)#背景只有一個所以是Set()
renderer.AddActor(cube_actor)#因為actor有可能為多個所以是add()
# 5. 顯示渲染窗口
render_window = vtk.vtkRenderWindow()
render_window.SetWindowName("My First Cube")
render_window.SetSize(400,400)
render_window.AddRenderer(renderer)# 渲染也會有可能有多個渲染把他們一起顯示
# 6. 創建交互控鍵(可以用鼠標拖來拖去看三維模型)
interactor = vtk.vtkRenderWindowInteractor()
interactor.SetRenderWindow(render_window)
interactor.Initialize()
render_window.Render()
interactor.Start()