zoukankan      html  css  js  c++  java
  • 科学计算三维可视化---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)))

  • 相关阅读:
    Maven 打war包
    linuxan安装redis出现Newer version of jemalloc required错误
    Linux常用命令
    Linux重启和关机命令
    CentOS 端口和防火墙操作
    修改root密码
    Web登录验证之 Shiro
    No WebApplicationContext found: no ContextLoaderListener registered
    java写文件实现换行
    gcc命令详解
  • 原文地址:https://www.cnblogs.com/ssyfj/p/9300338.html
Copyright © 2011-2022 走看看