news 2026/8/5 21:50:26

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/8/5 14:08:52

python-flask-django高校迎新管理与新生入学服务系统_cliy3341

文章目录 系统截图项目技术简介可行性分析主要运用技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式! 系统截图 python-flask-django_陈丽英1 高校迎新管理与新生入学服务系统 项目技术简介 Python版本&…

作者头像 李华
网站建设 2026/8/5 19:35:52

三相PWM整流器闭环仿真:从理论到实践

三相PWM整流器闭环仿真,电压电流双闭环控制,输出直流电压做外环 模型中包含主电路,坐标变换,电压电流双环PI控制器,SVPWM控制,PWM发生器 matlab/simulink模型 功率因数1,低THD仅1.2% 模型输出电…

作者头像 李华
网站建设 2026/8/5 17:59:03

AI原生测试引擎:Katalon TrueTest重塑软件测试

在软件发布节奏不断加快的今天,测试团队常常面临一个核心矛盾:如何在不增加人力负担和脚本维护成本的前提下,保证应用的可靠性与测试覆盖率。传统基于脚本的自动化测试方法虽然有效,但其创建、维护的瓶颈以及难以覆盖真实用户复杂行为的问题日益凸显。 什么是TrueTest? …

作者头像 李华
网站建设 2026/8/5 23:46:50

GraniStudio:思维导图式零代码开发软件平台

GraniStudio 是苏州格拉尼视觉科技自主研发的工业级零代码开发平台,专为自动化设备软件开发设计,集运动控制、机器视觉、数据采集、HMI 设计等功能于一体。GraniStudio 的思维导图式开发模式打破了传统代码的线性思维,采用 “资源配置→流程设…

作者头像 李华
网站建设 2026/8/6 4:55:16

7、深入了解Samba:Windows客户端配置与SMB/CIFS协议解析

深入了解Samba:Windows客户端配置与SMB/CIFS协议解析 1. 配置Windows NT 4.0计算机以使用Samba 要在Windows NT 4.0计算机上使用Samba,需要安装工作站服务和TCP/IP协议。以下是基本步骤: 1. 为计算机命名 2. 安装工作站服务 3. 安装TCP/IP协议 4. 设置计算机名称和IP地…

作者头像 李华