news 2026/4/3 3:05:44

StripFran 对比三角形带与数据抽取、采样模型的不同

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
StripFran 对比三角形带与数据抽取、采样模型的不同

一:主要的知识点

1、说明

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

2、知识点纪要

本段代码主要涉及的有①vtkMaskPolyData抽取点或单元格


二:代码及注释

import vtkmodules.vtkRenderingOpenGL2 import vtkmodules.vtkInteractionStyle from vtkmodules.vtkCommonColor import vtkNamedColors from vtkmodules.vtkIOLegacy import vtkPolyDataReader from vtkmodules.vtkFiltersCore import vtkDecimatePro, vtkPolyDataNormals, vtkMaskPolyData, vtkStripper from vtkmodules.vtkRenderingCore import ( vtkActor, vtkCamera, vtkPolyDataMapper, vtkRenderWindow, vtkRenderWindowInteractor, vtkRenderer ) def main(): colors = vtkNamedColors() fileName = "Data/fran_cut.vtk" renderer1 = vtkRenderer() renderer1.SetViewport(0.0, 0.0, 0.5, 1.0) renderer2 = vtkRenderer() renderer2.SetViewport(0.5, 0.0, 1.0, 1.0) renderWindow = vtkRenderWindow() renderWindow.AddRenderer(renderer1) renderWindow.AddRenderer(renderer2) renderWindow.SetWindowName('StripFran') interactor = vtkRenderWindowInteractor() interactor.SetRenderWindow(renderWindow) cyber = vtkPolyDataReader() cyber.SetFileName(fileName) deci = vtkDecimatePro() deci.SetInputConnection(cyber.GetOutputPort()) deci.SetTargetReduction(0.7) deci.PreserveTopologyOn() normals = vtkPolyDataNormals() normals.SetInputConnection(deci.GetOutputPort()) """ vtkMaskPolyData 从一个 vtkPolyData(多边形数据集) 中,按一定规则抽取部分点或单元(cell),而不是使用全部数据 方法 | 功能 SetInputData(polydata)` 指定输入数据 SetOnRatio(n)` 抽样比例:每 n 个点取一个 RandomModeOn()` 开启随机抽样模式(非顺序) SetMaximumNumberOfPoints(m)` 限制输出最大点数 SetRandomSeed(seed)` 控制随机数种子,确保结果可重复 与vtkDecimatePro都是下采样,但是最大的不同在于vtkMaskPolyData无法保证原先的拓扑结构 """ mask = vtkMaskPolyData() mask.SetInputConnection(deci.GetOutputPort()) mask.SetOnRatio(2) cyberMapper = vtkPolyDataMapper() cyberMapper.SetInputConnection(mask.GetOutputPort()) cyberActor = vtkActor() cyberActor.SetMapper(cyberMapper) cyberActor.GetProperty().SetColor(colors.GetColor3d('Flesh')) stripper = vtkStripper() stripper.SetInputConnection(cyber.GetOutputPort()) stripperMask = vtkMaskPolyData() stripperMask.SetInputConnection(stripper.GetOutputPort()) stripperMask.SetOnRatio(2) stripperMapper = vtkPolyDataMapper() stripperMapper.SetInputConnection(stripperMask.GetOutputPort()) stripperActor = vtkActor() stripperActor.SetMapper(stripperMapper) stripperActor.GetProperty().SetColor(colors.GetColor3d('Flesh')) renderer1.AddActor(stripperActor) renderer2.AddActor(cyberActor) renderer1.SetBackground(colors.GetColor3d('Wheat')) renderer2.SetBackground(colors.GetColor3d('Papaya_Whip')) renderWindow.SetSize(1024, 640) cam1 = vtkCamera() cam1.SetFocalPoint(0, 0, 0) cam1.SetPosition(1, 0, 0) cam1.SetViewUp(0, 1, 0) renderer1.SetActiveCamera(cam1) renderer2.SetActiveCamera(cam1) renderer1.ResetCamera() cam1.Azimuth(30) cam1.Elevation(30) cam1.Dolly(1.4) renderer1.ResetCameraClippingRange() interactor.Start() if __name__ == '__main__': main()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/1 16:03:36

基于单片机的养牛场远程控制系统(有完整资料)

资料查找方式:特纳斯电子(电子校园网):搜索下面编号即可编号:T2792402M设计简介:本设计是基于单片机的养牛场远程控制系统,主要实现以下功能:通过温度传感器检测环境温度&#xff0c…

作者头像 李华
网站建设 2026/3/31 0:40:02

避免重复下载与无效构建,Docker镜像缓存最佳实践指南

第一章:Docker镜像缓存的核心价值与挑战Docker镜像缓存是提升容器构建效率的关键机制。通过复用已有层(layers),Docker能够避免重复执行相同的构建指令,显著缩短构建时间并降低资源消耗。镜像缓存的工作原理 Docker在构…

作者头像 李华
网站建设 2026/3/31 8:45:44

Java CompletableFuture异步编排:VibeThinker构建复杂回调链

Java CompletableFuture异步编排:VibeThinker构建复杂回调链 在当今AI驱动的软件系统中,如何高效调度轻量级推理模型、协调多阶段任务并保持高并发下的响应能力,已成为工程落地的核心挑战。尤其是在数学解题、算法生成等需要严谨逻辑推导的场…

作者头像 李华
网站建设 2026/4/2 23:12:57

如何实时监控Docker容器性能?3步搭建企业级监控体系

第一章:Docker性能监控的核心价值与挑战在现代云原生架构中,Docker作为容器化技术的基石,广泛应用于微服务部署与资源隔离。然而,随着容器数量的快速增长和动态调度的频繁发生,对系统性能的可观测性提出了更高要求。有…

作者头像 李华
网站建设 2026/3/30 19:19:35

‌音乐理论启发:用节奏与和弦设计测试用例的覆盖律动‌

音乐理论与测试工程的跨界交响 在软件测试领域,"覆盖率"常被量化为冰冷的数据指标。而音乐中节奏的时序控制与和弦的层次结构,恰恰为测试用例设计提供了动态覆盖律动的创新视角——通过模拟音乐创作思维,我们可将线性测试转化为多…

作者头像 李华
网站建设 2026/4/2 6:13:52

‌仿生学测试设计:向蚁群算法学习分布式系统的容错验证‌

仿生学在测试设计中的革新意义 在分布式系统测试领域,容错验证是确保系统可靠性的核心挑战。随着系统规模扩大,传统测试方法(如静态代码分析或人工脚本)常面临覆盖率不足、效率低下问题。仿生学为解决这一问题提供了新视角——通…

作者头像 李华