linux安装python_VTK:华为笔记本电脑+深度deepin-linux+python下安装和入门
1 說明:
=====
1.1 vtk,(visualization toolkit)是一個開源的免費軟件系統(tǒng),主要用于三維計算機圖形學、圖像處理和可視化。
1.2 是一個開源、跨平臺、可自由獲取、支持并行處理的圖形應用函數(shù)庫。
1.3 vtk的內(nèi)核是用C++構建的。
1.4 是在三維函數(shù)庫OpenGL的基礎上采用面向對象的設計方法發(fā)展起來的。
1.5 可以自由的通過Java,Tcl/Tk和Python各種語言使用vtk,本文主要是用python3下使用vtk。
2 準備:
=====
2.1 環(huán)境:
華為筆記本電腦、深度deepin-linux操作系統(tǒng)、python3.8和微軟vscode編輯器。
2.2 官網(wǎng):
https://vtk.org/https://gitlab.kitware.com/vtk/vtkhttps://lorensen.github.io/VTKExamples/site/Python/ #代碼來源#對官方代碼進行修改、刪減、整理、注釋,符合國人和小白要求2.3 源碼安裝:
#第一步:官網(wǎng),這個頁面https://vtk.org/download/#本機下載是這個文件,速度很慢,大概1個小時vtk-9.0.0-cp38-cp38-linux_x86_64.whl#第二步:將下載的文件放在桌面的VTK文件夾下,并打開終端進入該文件夾cd /home/xgj/Desktop/VTK#安裝sudo pip3.8 install vtk-9.0.0-cp38-cp38-linux_x86_64.whl安裝
驗證安裝是否成功
3 Helloworld:
==========
3.1 熟悉wtk的GUI的基本設置:
3.1.1 窗口標題名、窗口大小、窗口位置、背景顏色和代碼結構。
3.1.2 代碼:
#方法一:import vtk#---第一層:繪制器---ren = vtk.vtkRenderer() # 負責管理場景的渲染過程#注意顏色定義類似opengl的ren.SetBackground(0.1, 0.2, 0.4) #在這里設置背景顏色:藍色#---第二層:繪制窗口---renWin = vtk.vtkRenderWindow()# 窗口標題名renWin.SetWindowName("The first window") #不支持中文# 窗口大小renWin.SetSize(800, 800)# 設置窗口位置:默認0,0==左上角renWin.SetPosition(10, 10)# 繪制窗口添加繪制器renWin.AddRenderer(ren)#---第三層:創(chuàng)建窗口交互器---iren = vtk.vtkRenderWindowInteractor()iren.SetRenderWindow(renWin)iren.Initialize()iren.Start()#方法二:import vtkdef main(): #---第一層:繪制器--- ren = vtk.vtkRenderer() # 負責管理場景的渲染過程 #注意顏色定義類似opengl的 ren.SetBackground(0.1, 0.2, 0.4) #在這里設置背景顏色:藍色 #---第二層:繪制窗口--- renWin = vtk.vtkRenderWindow() # 窗口標題名 renWin.SetWindowName("The first window") #不支持中文 # 窗口大小 renWin.SetSize(800, 800) # 設置窗口位置:默認0,0==左上角 renWin.SetPosition(10, 10) # 繪制窗口添加繪制器 renWin.AddRenderer(ren) #---第三層:創(chuàng)建窗口交互器--- iren = vtk.vtkRenderWindowInteractor() iren.SetRenderWindow(renWin) iren.Initialize() iren.Start()if __name__ == '__main__': main()#main() #方法三,省略,就是不要if-name-main3.1.3 圖:
3.2 靜態(tài)helloworld:
3.2.1 代碼:
import vtk# Create a text actor.txt = vtk.vtkTextActor()txt.SetInput("Hello World") #不支持中文txtprop = txt.GetTextProperty()txtprop.SetFontFamilyToArial()txtprop.BoldOn()#字體大小設置txtprop.SetFontSize(36)txtprop.ShadowOn()txtprop.SetShadowOffset(4, 4)#文本顯示坐標,默認0,0==左下角#注意300,300是指離左下角0,0的300,300的距離坐標,是固定不變的#不會隨著窗口變大而改變txt.SetDisplayPosition(300, 300)# 繪制器ren = vtk.vtkRenderer() # 負責管理場景的渲染過程#注意顏色定義類似opengl的ren.SetBackground(0.1, 0.2, 0.4) #在這里設置背景顏色:藍色# 繪制器添加演員ren.AddActor(txt)# 繪制窗口renWin = vtk.vtkRenderWindow()# 窗口標題名renWin.SetWindowName("Hello World") #不支持中文# 窗口大小renWin.SetSize(800, 800)# 設置窗口位置:默認0,0==左上角renWin.SetPosition(600, 20) #盡量居中# 繪制窗口添加繪制器renWin.AddRenderer(ren)# 創(chuàng)建窗口交互器iren = vtk.vtkRenderWindowInteractor()iren.SetRenderWindow(renWin)iren.Initialize()# 窗口讀取繪制器生成的圖形iren.Start()3.2.2 圖:
3.3 動態(tài)Hello world:
3.3.1 代碼:
import vtk#啟動文字源碼框架,內(nèi)置的textSource = vtk.vtkTextSource()textSource.SetText("Hello World") #設置顯示文字textSource.SetForegroundColor(1.0, 0.0, 0.0) #字體顏色為紅色textSource.BackingOn()textSource.Update()#Create a mapper and actormapper = vtk.vtkPolyDataMapper()mapper.SetInputConnection(textSource.GetOutputPort())#和actor執(zhí)行動作actor = vtk.vtkActor()actor.SetMapper(mapper)# 繪制器ren = vtk.vtkRenderer() # 負責管理場景的渲染過程#注意顏色定義類似opengl的ren.SetBackground(0.1, 0.2, 0.4) #在這里設置背景顏色:藍色# 繪制器添加actor,雖然有“演員”的意思,這里指執(zhí)行單元或者內(nèi)容ren.AddActor(actor) # 繪制窗口renWin = vtk.vtkRenderWindow()# 窗口標題名renWin.SetWindowName("Hello world") #不支持中文# 窗口大小renWin.SetSize(800, 800)# 設置窗口位置:默認0,0==左上角renWin.SetPosition(600, 20) #盡量居中# 繪制窗口添加繪制器renWin.AddRenderer(ren)# 創(chuàng)建窗口交互器iren = vtk.vtkRenderWindowInteractor()iren.SetRenderWindow(renWin)iren.Initialize()# 窗口讀取繪制器生成的圖形iren.Start()3.3.2 效果圖:
4 官方3D圖:
=========
4.1 arrow=箭頭
4.1.1 代碼:
import vtk#---add------------#自帶箭頭源arrow_source = vtk.vtkArrowSource()# 映射器mapper = vtk.vtkPolyDataMapper()# 映射器添加數(shù)據(jù)源mapper.SetInputConnection(arrow_source.GetOutputPort())# 實例化執(zhí)行單元actor = vtk.vtkActor()# 執(zhí)行單元添加映射器actor.SetMapper(mapper)#---add-------------# 繪制器ren = vtk.vtkRenderer() # 負責管理場景的渲染過程#注意顏色定義類似opengl的ren.SetBackground(0.1, 0.2, 0.4) #在這里設置背景顏色:藍色# 繪制器添加執(zhí)行單元ren.AddActor(actor) #---add----------# 繪制窗口renWin = vtk.vtkRenderWindow()# 窗口標題名renWin.SetWindowName("arrow") #不支持中文# 窗口大小renWin.SetSize(800, 800)# 設置窗口位置:默認0,0==左上角renWin.SetPosition(600, 20) #盡量居中# 繪制窗口添加繪制器renWin.AddRenderer(ren)# 創(chuàng)建窗口交互器iren = vtk.vtkRenderWindowInteractor()iren.SetRenderWindow(renWin)iren.Initialize()# 窗口讀取繪制器生成的圖形iren.Start()4.1.2 效果圖
4.2 cylinder=圓柱體:
4.2.1 代碼:
import vtk#定義主函數(shù)def main(): #加載自帶,實例化cylinder cylinder_source = vtk.vtkCylinderSource() #不設置,就是默認的高和半徑 #cylinder_source.SetHeight(3.0) # 設置柱體的高 #cylinder_source.SetRadius(1.0) # 設置柱體橫截面的半徑 cylinder_source.SetResolution(8) #8條邊,特點 #映射器 mapper = vtk.vtkPolyDataMapper() # 映射器添加數(shù)據(jù)源 mapper.SetInputConnection(cylinder_source.GetOutputPort()) # 實例化執(zhí)行單元 actor = vtk.vtkActor() # 執(zhí)行單元添加映射器 actor.SetMapper(mapper) #cylinder特點 actor.RotateX(30.0) actor.RotateY(-45.0) # 繪制器 ren = vtk.vtkRenderer() # 負責管理場景的渲染過程 #注意顏色定義類似opengl的 ren.SetBackground(0.1, 0.2, 0.4) #在這里設置背景顏色:藍色 # 繪制器添加動作 ren.AddActor(actor) # 繪制窗口 renWin = vtk.vtkRenderWindow() # 窗口標題名 renWin.SetWindowName("cylinder") #不支持中文 # 窗口大小 renWin.SetSize(800, 800) # 設置窗口位置:默認0,0==左上角 renWin.SetPosition(600, 20) #盡量居中 # 繪制窗口添加繪制器 renWin.AddRenderer(ren) # 創(chuàng)建窗口交互器 iren = vtk.vtkRenderWindowInteractor() iren.SetRenderWindow(renWin) iren.Initialize() # 窗口讀取繪制器生成的圖形 iren.Start()if __name__ == '__main__': main()4.2.2 效果圖:
4.3 cube=正方體:
4.3.1 代碼:
import vtk#---在arrow代碼基礎上修改:改變處:arrow變cube------------# 讀取數(shù)據(jù)cube_source = vtk.vtkCubeSource()cube_source.Update()#記得加這句不加看不到模型,不同處# 建圖(將點拼接成立方體)mapper = vtk.vtkPolyDataMapper()mapper.SetInputData(cube_source.GetOutput()) #因為update,所以選擇這個#mapper.SetInputData(cube_source.GetOutputPort()) #報錯,不同處# 根據(jù)創(chuàng)建執(zhí)行單元actor = vtk.vtkActor()actor.SetMapper(mapper)#這是cube=正方體表面顏色:紅色1.0, 0.0, 0.0actor.GetProperty().SetColor(0.1, 0.2, 0.4) #藍色#---改變處:arrow變cube-------------# 繪制器ren = vtk.vtkRenderer() # 負責管理場景的渲染過程#注意顏色定義類似opengl的ren.SetBackground(0.0, 0.0, 0.0) #在這里設置背景顏色:黑色# 繪制器添加執(zhí)行單元ren.AddActor(actor) # 繪制窗口renWin = vtk.vtkRenderWindow()# 窗口標題名renWin.SetWindowName("cube") #不支持中文# 窗口大小renWin.SetSize(1600, 1200)# 設置窗口位置:默認0,0==左上角renWin.SetPosition(300, 20) #盡量居中# 繪制窗口添加繪制器renWin.AddRenderer(ren)# 創(chuàng)建窗口交互器iren = vtk.vtkRenderWindowInteractor()iren.SetRenderWindow(renWin)iren.Initialize()# 窗口讀取繪制器生成的圖形iren.Start()4.3.2 效果圖:
4.4 cone=圓錐體:
4.4.1 代碼:
import vtk#---在arrow代碼基礎上修改---#改動1:僅僅:改arrow為conecone_source=vtk.vtkConeSource() # 映射器mapper = vtk.vtkPolyDataMapper()# 映射器添加數(shù)據(jù)源mapper.SetInputConnection(cone_source.GetOutputPort()) #改動2:僅僅改arrow為cone# 實例化actor=執(zhí)行單元actor = vtk.vtkActor()# 執(zhí)行單元添加映射器actor.SetMapper(mapper)#---add-------------# 繪制器ren = vtk.vtkRenderer() # 負責管理場景的渲染過程#注意顏色定義類似opengl的ren.SetBackground(0.1, 0.2, 0.4) #在這里設置背景顏色:藍色# 繪制器添加執(zhí)行單元ren.AddActor(actor) #---add----------# 繪制窗口renWin = vtk.vtkRenderWindow()# 窗口標題名renWin.SetWindowName("cone") #不支持中文,改動3:僅僅:改arrow為cone# 窗口大小renWin.SetSize(800, 800)# 設置窗口位置:默認0,0==左上角renWin.SetPosition(600, 20) #盡量居中# 繪制窗口添加繪制器renWin.AddRenderer(ren)# 創(chuàng)建窗口交互器iren = vtk.vtkRenderWindowInteractor()iren.SetRenderWindow(renWin)iren.Initialize()# 窗口讀取繪制器生成的圖形iren.Start()4.4.2 效果圖:
4.5 disk=碟:
4.5.1 特點:顏色設置的另外一種方法,與上面的數(shù)字法不同。
4.5.2 代碼:
import vtkdef main(): #調(diào)出顏色設置,實例化 colors = vtk.vtkNamedColors() #調(diào)出disk設置,實例化,自帶 diskSource = vtk.vtkDiskSource() # Create a mapper and actor. mapper = vtk.vtkPolyDataMapper() mapper.SetInputConnection(diskSource.GetOutputPort()) actor = vtk.vtkActor() #設置disk碟的actor執(zhí)行單元的顏色 actor.GetProperty().SetColor(colors.GetColor3d("Cornsilk")) actor.SetMapper(mapper) # 繪制器 ren = vtk.vtkRenderer() # 負責管理場景的渲染過程 #注意顏色定義類似opengl的數(shù)字法 #ren.SetBackground(0.1, 0.2, 0.4) #在這里設置背景顏色:藍色 #vtk自身的顏色設置法 ren.SetBackground(colors.GetColor3d("DarkGreen")) # 繪制器添加執(zhí)行單元 ren.AddActor(actor) # 繪制窗口 renWin = vtk.vtkRenderWindow() # 窗口標題名 renWin.SetWindowName("disk") #不支持中文,改動3:僅僅:改arrow為disk # 窗口大小 renWin.SetSize(800, 800) # 設置窗口位置:默認0,0==左上角 renWin.SetPosition(600, 20) #盡量居中 # 繪制窗口添加繪制器 renWin.AddRenderer(ren) # 創(chuàng)建窗口交互器 iren = vtk.vtkRenderWindowInteractor() iren.SetRenderWindow(renWin) iren.Initialize() # 窗口讀取繪制器生成的圖形 iren.Start()if __name__ == '__main__': main()4.5.3 效果圖:
4.6 sphere=球體:
4.6.1 代碼:
import vtk#自帶,sphere=球體,實例化調(diào)出sphere_source = vtk.vtkSphereSource()sphere_source.SetCenter(0, 0, 0)sphere_source.SetRadius(5.0)# 映射器mapper = vtk.vtkPolyDataMapper()# 映射器添加數(shù)據(jù)源mapper.SetInputConnection(sphere_source.GetOutputPort())# 實例化執(zhí)行單元actor = vtk.vtkActor()# 執(zhí)行單元添加映射器actor.SetMapper(mapper)# 繪制器ren = vtk.vtkRenderer() # 負責管理場景的渲染過程#注意顏色定義類似opengl的ren.SetBackground(0.1, 0.2, 0.4) #在這里設置背景顏色:藍色# 繪制器添加執(zhí)行單元ren.AddActor(actor) # 繪制窗口renWin = vtk.vtkRenderWindow()# 窗口標題名renWin.SetWindowName("sphere") #不支持中文# 窗口大小renWin.SetSize(800, 800)# 設置窗口位置:默認0,0==左上角renWin.SetPosition(600, 20) #盡量居中# 繪制窗口添加繪制器renWin.AddRenderer(ren)# 創(chuàng)建窗口交互器iren = vtk.vtkRenderWindowInteractor()iren.SetRenderWindow(renWin)iren.Initialize()# 窗口讀取繪制器生成的圖形iren.Start()4.6.2 效果圖:
===自己整理并分享出來===
喜歡的就點贊、關注、評論、轉發(fā)和收藏。
總結
以上是生活随笔為你收集整理的linux安装python_VTK:华为笔记本电脑+深度deepin-linux+python下安装和入门的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ai快捷键常用表_遇到这些办公软件快捷键
- 下一篇: 虚拟机上部署的项目 访问路径怎么写_桌面