科學計算三維可視化---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()
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()

(二)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)))

相關文章
相關標籤/搜索