news 2026/5/14 4:31:38

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/5/1 17:49:18

旅行社工作大减负!

旅游旺季一到,旅行社忙得脚不沾地?收集旅客证件、核对信息、规划行程,每一项都让人头大!别慌,现在有了 “神助攻”—— 护照阅读器,直接让旅行社工作效率拉满,轻松应对各种难题!旅行…

作者头像 李华
网站建设 2026/5/11 2:38:59

【C# 12顶级语句深度解析】:掌握现代C#编程的终极利器

第一章:C# 12顶级语句概述C# 12 引入的顶级语句(Top-Level Statements)极大简化了应用程序的入口点定义,使开发者能够以更简洁的方式编写控制台或小型项目程序,无需手动创建类和 Main 方法。这一特性特别适用于学习、原…

作者头像 李华
网站建设 2026/5/3 7:59:26

解锁本科论文新境界:书匠策AI——你的学术隐形导航仪

在本科学习的尾声,面对毕业论文这座“大山”,许多同学常常感到力不从心。选题迷茫、逻辑混乱、表达不专业、格式调整繁琐……这些问题像一道道难以跨越的坎,让原本就紧张的学业生活更加雪上加霜。然而,在科技日新月异的今天&#…

作者头像 李华
网站建设 2026/5/11 12:35:06

本科毕业季不再“从零写起”:一位理工科学生的AI协作手记——那些论文写作中被忽略的隐形效率杠杆

又到一年毕业季。图书馆的灯亮得更早,咖啡杯在桌上堆成小山,凌晨三点的寝室键盘声此起彼伏。作为刚刚完成本科毕业论文的“过来人”,我深知那种面对空白文档的窒息感——不是没想法,而是不知道如何把零散的思路变成一篇结构严谨、…

作者头像 李华