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()) #输出当前场景下渲染器中实体的映射器图形的输入点
添加或删除光源和修改属性