news 2026/9/2 21:57:15

Rainbow读取和渲染 PLOT3D 格式的流体动力学(CFD)仿真数据

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Rainbow读取和渲染 PLOT3D 格式的流体动力学(CFD)仿真数据

一:主要的知识点

1、说明

本文只是教程内容的一小段,因博客字数限制,故进行拆分。主教程链接:vtk教程——逐行解析官网所有Python示例-CSDN博客

2、知识点纪要

本段代码主要涉及的有①vtkStructuredGridGeometryFilter网格到几何的过滤器


二:代码及注释

from vtkmodules.vtkIOParallel import vtkMultiBlockPLOT3DReader from vtkmodules.vtkCommonColor import vtkNamedColors from vtkmodules.vtkFiltersGeometry import vtkStructuredGridGeometryFilter from vtkmodules.vtkCommonCore import vtkLookupTable from vtkmodules.vtkRenderingCore import vtkPolyDataMapper, vtkActor, vtkRenderer, vtkRenderWindow, vtkRenderWindowInteractor from vtkmodules.vtkFiltersCore import vtkStructuredGridOutlineFilter def main(): xyzFn, qFn = "Data/combxyz.bin", "Data/combq.bin" colors = vtkNamedColors() pl3d = vtkMultiBlockPLOT3DReader() pl3d.SetXYZFileName(xyzFn) pl3d.SetQFileName(qFn) pl3d.SetScalarFunctionNumber(100) # 使用编号为 100 的数据数组(例如,可能是压力或温度)为提取的平面上色 pl3d.SetVectorFunctionNumber(202) #使用编号为 202 的数据数组(通常是 U, V, $ 速度分量)作为矢量场数据 pl3d.Update() pl3dOutput = pl3d.GetOutput().GetBlock(0) """ vtkStructuredGridGeometryFilter VTK 里一个网格到几何(geometry)转换的过滤器 用于把 vtkStructuredGrid(结构化网格)提取成可以渲染的表面几何数据(vtkPolyData) 它允许你从三维结构化数据中 抽取一个“层面”(比如 i=0 面、j=5 面等), 以便:显示网格表面;可视化内部结构;做切片渲染或剖面可视化 """ plane = vtkStructuredGridGeometryFilter() plane.SetInputData(pl3dOutput) plane.SetExtent(1, 100, 1, 100, 7, 7) lut = vtkLookupTable() lut.SetNumberOfColors(256) lut.SetHueRange(0.0, 0.667) planeMapper = vtkPolyDataMapper() planeMapper.SetLookupTable(lut) plane.SetInputData(pl3dOutput) planeMapper.SetScalarRange(pl3dOutput.GetScalarRange()) planeActor = vtkActor() planeActor.SetMapper(planeMapper) """ vtkStructuredGridOutlineFilter 为一个 vtkStructuredGrid 数据集生成“外框线(outline)”几何模型,用于显示该网格的边界范围 输入:vtkStructuredGrid, 输出:vtkPolyData """ outline = vtkStructuredGridOutlineFilter() outline.SetInputData(pl3dOutput) outlineMapper = vtkPolyDataMapper() outlineMapper.SetInputConnection(outline.GetOutputPort()) outlineActor = vtkActor() outlineActor.SetMapper(outlineMapper) ren1 = vtkRenderer() renWin = vtkRenderWindow() renWin.AddRenderer(ren1) iren = vtkRenderWindowInteractor() iren.SetRenderWindow(renWin) # Add the actors to the renderer, set the background and size. # ren1.AddActor(outlineActor) ren1.AddActor(planeActor) ren1.SetBackground(colors.GetColor3d('SlateGray')) ren1.TwoSidedLightingOff() renWin.SetSize(512, 512) renWin.SetWindowName('Rainbow') iren.Initialize() cam1 = ren1.GetActiveCamera() cam1.SetClippingRange(3.95297, 50) cam1.SetFocalPoint(8.88908, 0.595038, 29.3342) cam1.SetPosition(-12.3332, 31.7479, 41.2387) cam1.SetViewUp(0.060772, -0.319905, 0.945498) iren.Start() if __name__ == '__main__': main()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 19:19:24

B站UP主使用HeyGem制作系列科技评测视频

HeyGem数字人如何重塑B站科技视频创作生态 在B站,一个科技类UP主的日常可能比你想象中更“卷”:不仅要第一时间拿到新机测评,还得熬夜剪辑、反复出镜,甚至因为状态不佳重拍整段口播。而最近,不少头部科技区创作者悄悄换…

作者头像 李华
网站建设 2026/9/2 19:19:53

C#中十大排序算法实战解析:如何选择最适合你项目的方案?

第一章:C#数据处理中的排序算法概述在C#的数据处理场景中,排序算法是实现高效数据组织与检索的核心工具。无论是对集合中的整数、字符串进行排序,还是对自定义对象依据特定属性排序,.NET框架都提供了丰富的支持机制。理解不同排序…

作者头像 李华
网站建设 2026/9/2 19:19:23

HeyGem + GPU加速:大幅提升AI数字人视频生成效率的技术方案

HeyGem GPU加速:大幅提升AI数字人视频生成效率的技术方案 在短视频、在线教育和智能客服日益普及的今天,如何快速生成口型自然、表情协调的“会说话”的数字人视频,已经成为内容创作者与企业面临的核心挑战之一。传统方式依赖专业动画师逐帧…

作者头像 李华
网站建设 2026/9/2 2:10:36

GarageBand自制音乐播客+HeyGem生成主持人视频

GarageBand自制音乐播客 HeyGem生成主持人视频 在内容创作日益“AI化”的今天,越来越多独立创作者开始尝试用极简工具链完成专业级视听作品。你是否也曾想过:能不能一个人、一台Mac、不花一分钱,就做出带数字人主持的音乐播客? 答…

作者头像 李华
网站建设 2026/9/2 9:22:01

反向代理配置Nginx让HeyGem支持HTTPS访问

反向代理配置Nginx让HeyGem支持HTTPS访问 在AI数字人应用逐渐渗透进企业宣传、在线教育和虚拟主播等场景的今天,本地化部署的视频生成系统正变得越来越普遍。HeyGem作为一款功能完整的数字人视频合成平台,支持音频驱动口型同步,提供批量与单个…

作者头像 李华