news 2026/6/14 2:25:46

CompositePolyDataMapper复合数据集的展示与渲染

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CompositePolyDataMapper复合数据集的展示与渲染

一:主要的知识点

1、说明

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

2、知识点纪要

本段代码主要涉及的有①vtkMultiBlockDataSet复合数据的管理与渲染


二:代码及注释

import vtkmodules.vtkRenderingOpenGL2 import vtkmodules.vtkInteractionStyle from vtkmodules.vtkCommonColor import vtkNamedColors from vtkmodules.vtkRenderingCore import vtkActor, vtkCompositePolyDataMapper, vtkRenderWindow, \ vtkRenderWindowInteractor, vtkRenderer, vtkCompositeDataDisplayAttributes from vtkmodules.vtkFiltersSources import vtkSphereSource from vtkmodules.vtkCommonDataModel import vtkMultiBlockDataSet def main(): colors = vtkNamedColors() sphere1 = vtkSphereSource() sphere1.SetCenter(0, 0, 0) sphere1.SetRadius(3) sphere1.Update() sphere2 = vtkSphereSource() sphere2.SetCenter(2, 0, 0) sphere2.SetRadius(2) sphere2.Update() """ vtkMultiBlockDataSet 是一种 多块(multi-block)复合数据结构,可以在一个对象中 组织、管理多个 VTK 数据集(block) 例如:多个 vtkPolyData、vtkImageData、vtkUnstructuredGrid 等 vtkMultiBlockDataSet 本身是一个容器,它可以包含多个“Block”, 而每个 Block 又可以是: 一个独立的数据集(如 vtkPolyData),或者 另一个 vtkMultiBlockDataSet(也就是嵌套结构)。 你可以把它想象成一个 树形结构(Tree / Hierarchical dataset): vtkMultiBlockDataSet (Root) │ ├── Block 0 → vtkPolyData (比如飞机机身) ├── Block 1 → vtkPolyData (比如飞机机翼) ├── Block 2 → vtkImageData (比如流场) └── Block 3 → vtkMultiBlockDataSet (子模块) ├── Block 0 → vtkPolyData └── Block 1 → vtkPolyData """ mdbs = vtkMultiBlockDataSet() mdbs.SetNumberOfBlocks(3) # 设置有三个Block mdbs.SetBlock(0, sphere1.GetOutput()) mdbs.SetBlock(2, sphere2.GetOutput()) """ vtkCompositePolyDataMapper 专门为 复合数据(composite data) 可视化而设计的类 是一种能一次性渲染多个 vtkPolyData(或多块数据)的高效映射器(Mapper) """ mapper = vtkCompositePolyDataMapper() mapper.SetInputDataObject(mdbs) """ vtkCompositeDataDisplayAttributes 专门用于控制复合数据集中每个block的可视化属性 """ cdsa = vtkCompositeDataDisplayAttributes() mapper.SetCompositeDataDisplayAttributes(cdsa) """ 上面四行的代码的逻辑是 使用一个复合数据映射器(vtkCompositePolyDataMapper)来渲染一个复合数据集(vtkMultiBlockDataSet), 并通过 vtkCompositeDataDisplayAttributes 控制每个子块的显示属性(如颜色、透明度、可见性等) """ mapper.SetBlockColor(1, colors.GetColor3d("Red")) mapper.SetBlockColor(2, colors.GetColor3d("Blue")) mapper.SetBlockColor(3, colors.GetColor3d("Yellow")) """ 上面的索引之所以从1开始,而不是从0开始,是因为索引0对应的是整个MDBS容器,即所谓的根节点 1则是对应的sphere1, 2是一个NULL块,不会被渲染, 3对应的是sphere2 """ actor = vtkActor() actor.SetMapper(mapper) # Create the Renderer, RenderWindow, and RenderWindowInteractor. renderer = vtkRenderer() renderWindow = vtkRenderWindow() renderWindow.AddRenderer(renderer) renderWindowInteractor = vtkRenderWindowInteractor() renderWindowInteractor.SetRenderWindow(renderWindow) # Enable user interface interactor. renderer.AddActor(actor) renderer.SetBackground(colors.GetColor3d('SteelBlue')) renderWindow.SetWindowName('CompositePolyDataMapper') renderWindow.Render() renderWindowInteractor.Start() if __name__ == '__main__': main()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/12 21:37:32

技术团队必备:Excalidraw实时协作功能深度解析

技术团队必备:Excalidraw实时协作功能深度解析 在一场跨时区的架构评审会上,三位工程师正围在一个“虚拟白板”前激烈讨论。北京的后端负责人拖动一个服务模块,柏林的前端同事立刻看到变化并添加了API调用箭头,而旧金山的AI助手则…

作者头像 李华
网站建设 2026/6/13 16:16:08

语音指令集成难题一网打尽,Open-AutoGLM实战经验全分享

第一章:语音指令集成难题一网打尽,Open-AutoGLM实战经验全分享在现代智能系统开发中,语音指令的无缝集成已成为提升用户体验的关键环节。然而,实际落地过程中常面临语义理解偏差、多轮对话断裂、环境噪声干扰等挑战。Open-AutoGLM…

作者头像 李华
网站建设 2026/6/13 13:37:39

Excalidraw AI构建企业知识图谱的基础工具

Excalidraw AI:构建企业知识图谱的轻量化智能入口 在技术团队的日常协作中,你是否经历过这样的场景?架构师在白板前手绘系统流程,讲到一半被问:“这个服务到底调用的是哪个数据库?” 有人掏出手机拍照&…

作者头像 李华
网站建设 2026/6/13 20:02:50

Excalidraw AI生成深度学习网络结构图

Excalidraw AI生成深度学习网络结构图 在撰写一篇关于ResNet变体的论文时,研究团队需要快速向评审专家解释模型改动:原ResNet-50主干中的第三阶段被替换为轻量级注意力模块,并引入跨层跳跃连接。传统做法是打开绘图软件,手动拖拽矩…

作者头像 李华
网站建设 2026/6/13 14:35:13

Excalidraw AI在智能制造产线规划中的角色

Excalidraw AI在智能制造产线规划中的角色 在某新能源电池模组装配线的项目启动会上,几位工程师围坐在会议室里。机械工程师描述着“上料—焊接—测试—下料”的流程,电气同事却对工位间的信号交互方式感到困惑,而项目经理则不断追问&#xf…

作者头像 李华
网站建设 2026/6/13 13:37:10

安全测试左移的实施方案与效益分析

1. 安全测试左移的理念溯源与核心价值1.1 理念演进历程安全测试左移(Shift-Left Security Testing)是近年来软件安全工程领域的重要范式转变。其核心理念源于敏捷开发与DevOps文化的深入实践,将安全测试活动从传统的开发流程末端前置到需求分…

作者头像 李华