news 2026/10/28 21:19:57

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/10/28 5:11:05

python-flask-django海盾公司项目需求采购管理系统的设计与实现_vnrzk3s6

文章目录系统截图项目技术简介可行性分析主要运用技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!系统截图 python-flask-django_vnrzks6 海盾公司项目需求采购管理系统的设计与实现 项目技术简介 Pyth…

作者头像 李华
网站建设 2026/10/28 9:38:20

我愿称之为AI Agent最伟大的网站!!!

想深入了解 AI Agent 的发展路线,却发现大部分资料分布在各个方向,找论文、整理资料让我们颇为头大。 我把Agent的学习全流程已经整理📚好了,适合正在研究Agent 技术的同学。都放在知识库了,希望对大家有帮助&#xff…

作者头像 李华
网站建设 2026/10/27 13:09:16

运维工程师的职业出路在哪里?35 岁之后的方向该怎么选?

运维工程师的出路在哪里,尤其是 35 岁以后? 最近在某乎看到个问题,“运维的出路在哪里,特别是35以后?”, 网友 1:孩子快跑 打好基础,网络,安全,数据库,服务…

作者头像 李华
网站建设 2026/10/28 1:30:24

ClaudeCode安装记录

ClaudeCode安装记录ClaudeCode目前目前支持配置AutoGLM和Kimi;Mac版本会相对简单一点,AutoGLM配了自动化的部署脚本,Windows会稍微复杂一点,需要自己配置环境变量1-参考网址 尚硅谷ClaudeCode使用教程:https://www.bil…

作者头像 李华