一:数据加载
大多数可视化应用的数据并非是在TVTK库中构建的,很多都是通过接口读取外部数据文件
![](https://images2018.cnblogs.com/blog/1309518/201807/1309518-20180712161504049-1576073134.png)
![](https://images2018.cnblogs.com/blog/1309518/201807/1309518-20180712161533416-90324739.png)
(一)使用vtkSTLReader来读取外部文件
.stl 文件是在计算机图形应用系统中,用于表示三角形网格的一种文件格式。格式简单,应用广泛
![](https://images2018.cnblogs.com/blog/1309518/201807/1309518-20180712161847263-1814899597.png)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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()
Tvtkfunc.py
from tvtk.api import tvtk
from Tvtkfunc import ivtk_scene,event_loop
s = tvtk.STLReader(file_name="python.stl") #从外部读取数据
m = tvtk.PolyDataMapper(input_connection = s.output_port)
a = tvtk.Actor(mapper = m)
win = ivtk_scene(a)
win.scene.isometric_view()
event_loop()
![](https://images2018.cnblogs.com/blog/1309518/201807/1309518-20180712163326392-1693724264.png)
(二)MultiBlock数据读取
![](https://images2018.cnblogs.com/blog/1309518/201807/1309518-20180712163648221-1848939510.png)
![](https://images2018.cnblogs.com/blog/1309518/201807/1309518-20180712163716212-1858962314.png)
from tvtk.api import tvtk
def read_data(): #导入数据
plot3d = tvtk.MultiBlockPLOT3DReader(
xyz_file_name="comxyz.bin", #网格文件
q_file_name="combq.bin", #开启动力学结果文件
scalar_function_number = 100, #设置标量数据数量
vector_function_number=200, #设置矢量数据数量
)
plot3d.update() #从文件读取数据
return plot3d
plot3d = read_data()
grid = plot3d.output.get_block(0) #查看数据细节,获取网格数据集
print(type(plot3d.output))
print(type(plot3d.output.get_block(0)))
![](https://images2018.cnblogs.com/blog/1309518/201807/1309518-20180712164342660-434616321.png)
![](https://images2018.cnblogs.com/blog/1309518/201807/1309518-20180712164452464-124068288.png)
![](https://images2018.cnblogs.com/blog/1309518/201807/1309518-20180712164624223-1968105267.png)
![](https://images2018.cnblogs.com/blog/1309518/201807/1309518-20180712164746423-677535986.png)