from tvtk.tools import ivtk
pip3 install pygments
from tvtk.api import tvtk from tvtk.tools import ivtk from pyface.api import GUI #可視化管線部分 s = tvtk.CubeSource(x_length=1.0,y_length=2.0,z_length=3.0) m = tvtk.PolyDataMapper(input_connection=s.output_port) #圖形管線部分 a = tvtk.Actor(mapper=m) #建立一個實體 #建立一個帶有Crust(Python Shell)的窗口 gui = GUI() win = ivtk.IVTKWithCrustAndBrowser() win.open() win.scene.add_actor(a) #開啓界面消息循環 gui.start_event_loop()
from tvtk.api import tvtk from tvtk.tools import ivtk from pyface.api import GUI #可視化管線部分 s = tvtk.CubeSource(x_length=1.0,y_length=2.0,z_length=3.0) m = tvtk.PolyDataMapper(input_connection=s.output_port) #圖形管線部分 a = tvtk.Actor(mapper=m) #建立一個實體 #建立一個帶有Crust(Python Shell)的窗口 gui = GUI() win = ivtk.IVTKWithCrustAndBrowser() win.open() win.scene.add_actor(a) #修正錯誤 dialog = win.control.centralWidget().widget(0).widget(0) from pyface.qt import QtCore dialog.setWindowFlags(QtCore.Qt.WindowFlags(0x00000000)) dialog.show() #開啓界面消息循環 gui.start_event_loop()
咱們將建立IVTK窗口的功能和事件循環的功能封裝在兩個函數中
from tvtk.api import tvtk def ivtk_scene(actors): from tvtk.tools import ivtk # 建立一個帶有Crust(Python Shell)的窗口 win = ivtk.IVTKWithCrustAndBrowser() win.open() win.scene.add_actor(actors) # 修正錯誤 dialog = win.control.centralWidget().widget(0).widget(0) from pyface.qt import QtCore dialog.setWindowFlags(QtCore.Qt.WindowFlags(0x00000000)) dialog.show() return win def event_loop(): from pyface.api import GUI gui = GUI() # 開啓界面消息循環 gui.start_event_loop() # 可視化管線部分 s = tvtk.CubeSource(x_length=1.0, y_length=2.0, z_length=3.0) m = tvtk.PolyDataMapper(input_connection=s.output_port) # 圖形管線部分 a = tvtk.Actor(mapper=m) # 建立一個實體 win = ivtk_scene(a) win.scene.isometric_view() event_loop()
print(scene.renderer.actors[0].mapper.input.points.to_array()) #輸出當前場景下渲染器中實體的映射器圖形的輸入點
添加或刪除光源和修改屬性