news 2026/5/11 12:52:19

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
FilledPolygon切割一个三维模型并用颜色填充其横截面

一:主要的知识点

1、说明

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

2、知识点纪要

本段代码主要涉及的有①切割模型并用颜色填充横截面


二:代码及注释

import vtkmodules.vtkRenderingOpenGL2 from vtkmodules.vtkCommonColor import vtkNamedColors from vtkmodules.vtkCommonDataModel import vtkPlane, vtkPolyData from vtkmodules.vtkFiltersSources import vtkSphereSource from vtkmodules.vtkFiltersCore import vtkCutter, vtkFeatureEdges, vtkStripper from vtkmodules.vtkRenderingCore import ( vtkActor, vtkPolyDataMapper, vtkProperty, vtkRenderWindow, vtkRenderWindowInteractor, vtkRenderer ) def main(): colors = vtkNamedColors() sphere = vtkSphereSource() sphere.SetRadius(50) sphere.SetThetaResolution(100) sphere.SetPhiResolution(100) # cubeMapper = vtkPolyDataMapper() # cubeMapper.SetInputConnection(cube.GetOutputPort()) plane = vtkPlane() plane.SetOrigin(20, 0, 0) plane.SetNormal(1, 0, 0) cutter = vtkCutter() cutter.SetCutFunction(plane) cutter.SetInputConnection(sphere.GetOutputPort()) cutter.Update() # FeatureEdges = vtkFeatureEdges() # FeatureEdges.SetInputConnection(cutter.GetOutputPort()) # FeatureEdges.BoundaryEdgesOn() # FeatureEdges.FeatureEdgesOff() # FeatureEdges.ManifoldEdgesOff() # FeatureEdges.NonManifoldEdgesOff() # FeatureEdges.Update() cutStrips = vtkStripper() cutStrips.SetInputConnection(cutter.GetOutputPort()) cutStrips.Update() cutPoly = vtkPolyData() cutPoly.SetPoints(cutStrips.GetOutput().GetPoints()) cutPoly.SetPolys(cutStrips.GetOutput().GetLines()) cutMapper = vtkPolyDataMapper() cutMapper.SetInputData(cutPoly) backface = vtkProperty() backface.SetColor(colors.GetColor3d('Gold')) cutActor = vtkActor() cutActor.SetMapper(cutMapper) cutActor.GetProperty().SetColor(colors.GetColor3d('Yellow')) cutActor.GetProperty().SetEdgeColor(colors.GetColor3d('Red')) cutActor.GetProperty().SetLineWidth(2) cutActor.GetProperty().EdgeVisibilityOn() # cutActor.GetProperty().SetOpacity(0.7) cutActor.SetBackfaceProperty(backface) ren = vtkRenderer() ren.AddActor(cutActor) # Add renderer to renderwindow and render renWin = vtkRenderWindow() renWin.AddRenderer(ren) renWin.SetSize(600, 400) renWin.SetWindowName('FilledPolygon') iren = vtkRenderWindowInteractor() iren.SetRenderWindow(renWin) ren.SetBackground(colors.GetColor3d('DarkSlateGray')) ren.GetActiveCamera().SetPosition(223, -122, -91) renWin.Render() camera = ren.GetActiveCamera() camera.SetPosition(151.519511, 12.795117, -223.586044) camera.SetFocalPoint(12.518283, 1.963242, 7.618042) camera.SetViewUp(0.740690, -0.523767, 0.420769) camera.SetDistance(269.988889) camera.SetClippingRange(175.347580, 366.490816) camera.Zoom(1.5) iren.Start() if __name__ == '__main__': main()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/6 19:01:31

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

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

作者头像 李华
网站建设 2026/5/10 13:15:26

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

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

作者头像 李华
网站建设 2026/5/1 17:20:30

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

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

作者头像 李华
网站建设 2026/5/6 0:25:30

柔性生产到底是什么?一文讲清它如何支撑多品类、小批量生产

几乎所有生产企业,只要一提到 多品类、小批量、交期压缩、客户定制,后面就一定会跟一句:我们要做柔性生产。但说实话,我在现场听到这个词时,心里反而会咯噔一下。不是因为这个方向不对,恰恰相反—— 而是因…

作者头像 李华