news 2026/6/8 22:55:39

ExtractSelectionUsingCells选择和提取三维模型中的特定单元(Cell)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ExtractSelectionUsingCells选择和提取三维模型中的特定单元(Cell)

一:主要的知识点

1、说明

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

2、知识点纪要

本段代码主要涉及的有①通过特定索引取得网格面模型


二:代码及注释

import vtkmodules.vtkRenderingOpenGL2 from vtkmodules.vtkCommonColor import vtkNamedColors from vtkmodules.vtkCommonCore import vtkIdTypeArray from vtkmodules.vtkCommonDataModel import vtkSelection, vtkSelectionNode, vtkUnstructuredGrid from vtkmodules.vtkFiltersExtraction import vtkExtractSelection from vtkmodules.vtkFiltersSources import vtkSphereSource from vtkmodules.vtkRenderingCore import ( vtkActor, vtkCamera, vtkDataSetMapper, vtkProperty, vtkRenderWindow, vtkRenderWindowInteractor, vtkRenderer ) def main(): colors = vtkNamedColors() sphereSource = vtkSphereSource() sphereSource.Update() ids = vtkIdTypeArray() ids.SetNumberOfComponents(1) for i in range(10, 20): ids.InsertNextValue(i) selectionNode = vtkSelectionNode() selectionNode.SetFieldType(vtkSelectionNode.CELL) selectionNode.SetSelectionList(ids) selectionNode.SetContentType(vtkSelectionNode.INDICES) selection = vtkSelection() selection.AddNode(selectionNode) extractSelection = vtkExtractSelection() extractSelection.SetInputConnection(0, sphereSource.GetOutputPort()) extractSelection.SetInputData(1, selection) extractSelection.Update() selected = vtkUnstructuredGrid() selected.ShallowCopy(extractSelection.GetOutput()) selectionNode.GetProperties().Set(vtkSelectionNode.INVERSE(), 1) #取反,1表示取反状态启用? extractSelection.Update() notSelected = vtkUnstructuredGrid() notSelected.ShallowCopy(extractSelection.GetOutput()) backfaces = vtkProperty() backfaces.SetColor(colors.GetColor3d("Gold")) inputMapper = vtkDataSetMapper() inputMapper.SetInputConnection(sphereSource.GetOutputPort()) inputActor = vtkActor() inputActor.SetMapper(inputMapper) inputActor.GetProperty().SetColor(colors.GetColor3d("MistyRose")) inputActor.SetBackfaceProperty(backfaces) selectedMapper = vtkDataSetMapper() selectedMapper.SetInputData(selected) selectedActor = vtkActor() selectedActor.SetMapper(selectedMapper) selectedActor.SetBackfaceProperty(backfaces) selectedActor.GetProperty().SetColor(colors.GetColor3d('MistyRose')) notSelectedMapper = vtkDataSetMapper() notSelectedMapper.SetInputData(notSelected) notSelectedActor = vtkActor() notSelectedActor.SetMapper(notSelectedMapper) notSelectedActor.SetBackfaceProperty(backfaces) notSelectedActor.GetProperty().SetColor(colors.GetColor3d('MistyRose')) # There will be one render window renderWindow = vtkRenderWindow() renderWindow.SetSize(900, 300) renderWindow.SetWindowName('ExtractSelectionCells') # And one interactor interactor = vtkRenderWindowInteractor() interactor.SetRenderWindow(renderWindow) # Define viewport ranges # (xmin, ymin, xmax, ymax) leftViewport = [0.0, 0.0, 0.33, 1.0] centerViewport = [0.33, 0.0, 0.66, 1.0] rightViewport = [0.66, 0.0, 1.0, 1.0] # Create a camera for all renderers camera = vtkCamera() # Setup the renderers leftRenderer = vtkRenderer() renderWindow.AddRenderer(leftRenderer) leftRenderer.SetViewport(leftViewport) leftRenderer.SetBackground(colors.GetColor3d('BurlyWood')) leftRenderer.SetActiveCamera(camera) centerRenderer = vtkRenderer() renderWindow.AddRenderer(centerRenderer) centerRenderer.SetViewport(centerViewport) centerRenderer.SetBackground(colors.GetColor3d('orchid_dark')) centerRenderer.SetActiveCamera(camera) rightRenderer = vtkRenderer() renderWindow.AddRenderer(rightRenderer) rightRenderer.SetViewport(rightViewport) rightRenderer.SetBackground(colors.GetColor3d('CornflowerBlue')) rightRenderer.SetActiveCamera(camera) leftRenderer.AddActor(inputActor) centerRenderer.AddActor(selectedActor) rightRenderer.AddActor(notSelectedActor) leftRenderer.ResetCamera() renderWindow.Render() interactor.Start() if __name__ == '__main__': main()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/8 17:25:32

FilledPolygon切割一个三维模型并用颜色填充其横截面

一:主要的知识点 1、说明 本文只是教程内容的一小段,因博客字数限制,故进行拆分。主教程链接:vtk教程——逐行解析官网所有Python示例-CSDN博客 2、知识点纪要 本段代码主要涉及的有①切割模型并用颜色填充横截面 二&#xff…

作者头像 李华
网站建设 2026/6/8 17:53:07

python-flask-django海关出入口货物报关统筹管理系统_szdhjj06

文章目录 系统截图项目技术简介可行性分析主要运用技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式! 系统截图 python-flask-django_szdhjj6 海关出入口货物报关统筹管理系统 项目技术简介 Python版本&a…

作者头像 李华
网站建设 2026/6/8 12:41:48

人工智能训练师认证教程(3)Pandas数据世界的军刀

目录 一、高级数据加载与预处理 1.1 高效读取大文件 1.2 处理缺失值的进阶技巧 二、高效数据转换与计算 2.1 向量化操作与性能优化 2.2 高级分组与聚合 三、时间序列数据处理 3.1 高级时间序列操作 一、高级数据加载与预处理 1.1 高效读取大文件 python import pand…

作者头像 李华
网站建设 2026/6/7 6:48:57

小白秒懂 SQL 注入:图文详解 + 基础原理拆解,核心逻辑一看就会

一、Sql注入简介 Sql 注入攻击是通过将恶意的 Sql 查询或添加语句插入到应用的输入参数中,再在后台 Sql 服务器上解析执行进行的攻击,它目前黑客对数据库进行攻击的最常用手段之一。 二、Web 程序三层架构 三层架构(3-tier architecture) 通常意义上就…

作者头像 李华