科学计算三维可视化---TVTK入门(数据加载)
一:数据加载
大多数可视化应用的数据并非是在TVTK库中构建的,很多都是通过接口读取外部数据文件
(一)使用vtkSTLReader来读取外部文件
.stl 文件是在计算机图形应用系统中,用于表示三角形网格的一种文件格式。格式简单,应用广泛
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()
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()
(二)MultiBlock数据读取
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)))