一:用IVTK根据观察管线
(一)引入该工具
from tvtk.tools import ivtk
可能需要安装pygments
pip3 install pygments
(二)使用ivtk显示立方体
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()
由于GUI存在一个Bug,使得子窗口脱离主窗口
修正错误
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()
(四)进一步将函数转换为模块,方便复用
(五)界面操作
(1)交互界面获取信息
print(scene.renderer.actors[
0].mapper.input.points.to_array()) #输出当前场景下渲染器中实体的映射器图形的输入点
(2)查看照相机节点
(3)查看实体Actor
注意:在方向方面都是采用右手法则,上面照相机也是一样
(4)查看整个场景编辑器
添加或删除光源和修改属性
转载于:https://www.cnblogs.com/ssyfj/p/9299204.html
相关资源:基于钻孔数据的地层三维可视化改进算法