流体数据的标量可视化、矢量可视化实例

流 体 数 据 的 标 量 可 视 化 、 矢 量 可 视 化 实 例 流体数据的标量可视化、矢量可视化实例

tvtk.ContourFilter() 等值面过滤器

在这里插入图片描述

在这里插入图片描述

1.标量可视化

from tvtk.api import tvtk
from tvtkfunc import ivtk_scene, event_loop

plot3d = tvtk.MultiBlockPLOT3DReader(
        xyz_file_name="combxyz.bin",
        q_file_name="combq.bin",
        scalar_function_number=100, vector_function_number=200
    ) # 读入Plot3D数据
plot3d.update() # 让plot3D计算其输出数据
grid = plot3d.output.get_block(0) # 获取读入的数据集对象

con = tvtk.ContourFilter() # 创建等值面对象  
con.set_input_data(grid)
con.generate_values(10, grid.point_data.scalars.range) # 指定轮廓数和数据范围

# 设定映射器的变量范围属性
m = tvtk.PolyDataMapper(scalar_range = grid.point_data.scalars.range,
                        input_connection=con.output_port)
a = tvtk.Actor(mapper = m)
a.property.opacity = 0.5 # 设定透明度为0.5
#窗口绘制
win = ivtk_scene(a)
win.scene.isometric_view()
event_loop()

在这里插入图片描述

2.矢量可视化

tvtk.Glyph3D()符号化技术

在这里插入图片描述

tvtk.Glyph3D()符号化技术

在这里插入图片描述

from tvtk.api import tvtk
from tvtkfunc import ivtk_scene, event_loop

#读入PLot3D数据
plot3d = tvtk.MultiBlockPLOT3DReader(
        xyz_file_name="combxyz.bin",
        q_file_name="combq.bin",
        scalar_function_number=100, vector_function_number=200
    )
plot3d.update()
grid = plot3d.output.get_block(0)

#对数据集中的数据进行随机选取,每50个点选择一个点
mask = tvtk.MaskPoints(random_mode=True, on_ratio=50)
mask.set_input_data(grid)
#创建表示箭头的PolyData数据集
glyph_source = tvtk.ConeSource()
#在Mask采样后的PolyData数据集每个点上放置一个箭头
#箭头的方向、长度和颜色由于点对应的矢量和标量数据决定
glyph = tvtk.Glyph3D(input_connection=mask.output_port,
                      scale_factor=2)
glyph.set_source_connection(glyph_source.output_port)
m = tvtk.PolyDataMapper(scalar_range=grid.point_data.scalars.range,
                        input_connection=glyph.output_port)
a = tvtk.Actor(mapper=m)

#窗口绘制
win = ivtk_scene(a)
win.scene.isometric_view()
event_loop()

tvtk.Glyph3D()符号化技术

在这里插入图片描述

tvtk.MaskPoints() 降采样

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值