news 2026/8/13 7:19:32

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/8/10 7:53:10

关系抽取十年演进(2015–2025)

关系抽取十年演进(2015–2025) 一句话总论: 2015年关系抽取还是“管道式(实体识别分类)手工特征监督学习”的规则时代,2025年已进化成“端到端VLA多模态大模型实时开放关系抽取量子鲁棒自进化全域社交关系意…

作者头像 李华
网站建设 2026/7/31 8:43:18

案例教学:使用VibeThinker解决一道典型的动态规划题

案例教学:使用VibeThinker解决一道典型的动态规划题 在算法竞赛和日常刷题中,动态规划(DP)常常是令人又爱又恨的一类问题。它逻辑严密、结构清晰,但对思维的连贯性和建模能力要求极高——稍有不慎,状态定义…

作者头像 李华
网站建设 2026/7/31 6:26:46

【高可用架构必备】:Docker健康检查脚本设计全解析

第一章:Docker健康检查的核心价值与架构意义在现代容器化应用部署中,服务的可用性监控是保障系统稳定运行的关键环节。Docker健康检查(Health Check)机制允许用户定义容器内部服务的健康状态检测逻辑,从而让平台能够自…

作者头像 李华
网站建设 2026/7/31 11:24:47

GIMP图像批处理:VibeThinker编写Script-Fu脚本

GIMP图像批处理:VibeThinker编写Script-Fu脚本 在数字内容爆炸式增长的今天,设计师、开发者和内容创作者每天都面临大量重复性的图像处理任务——从批量调整尺寸、格式转换到添加水印、色彩校正。手动操作不仅耗时费力,还容易出错。有没有一种…

作者头像 李华
网站建设 2026/7/31 10:49:18

函数式编程问题也能解?VibeThinker支持Scheme/Lisp风格表达

函数式编程问题也能解?VibeThinker支持Scheme/Lisp风格表达 在算法竞赛和形式化推理的世界里,一个长期存在的挑战是:如何让AI真正“理解”递归、高阶函数和符号计算——而不仅仅是模仿语法。传统大模型虽然能生成看似合理的代码,但…

作者头像 李华
网站建设 2026/8/10 4:31:08

如何用cgroups实现精细化Docker资源控制?一篇讲透底层原理

第一章:Docker资源限制概述在容器化应用部署中,资源的合理分配与隔离是保障系统稳定性与安全性的关键。Docker 提供了灵活的资源限制机制,允许用户对容器的 CPU、内存、磁盘 I/O 等核心资源进行精细化控制,避免单个容器过度占用宿…

作者头像 李华