码迷,mamicode.com
首页 > 其他好文 > 详细

科学计算三维可视化---TVTK入门(数据加载)

时间:2018-07-12 18:03:47      阅读:435      评论:0      收藏:0      [点我收藏+]

标签:height   fun   gif   star   结果   input   导入   with   设置   

一:数据加载

大多数可视化应用的数据并非是在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)))

技术分享图片

技术分享图片

技术分享图片

技术分享图片

 

科学计算三维可视化---TVTK入门(数据加载)

标签:height   fun   gif   star   结果   input   导入   with   设置   

原文地址:https://www.cnblogs.com/ssyfj/p/9300338.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!