当前位置: 首页 > news >正文

WarpTo 对 3D 几何体进行形变(Warping操作,使其顶点朝着一个指定的空间点移动

一:主要的知识点

1、说明

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

2、知识点纪要

本段代码主要涉及的有①几何模型的变形vtkWarpTo


二:代码及注释

import vtkmodules.vtkRenderingOpenGL2 import vtkmodules.vtkInteractionStyle from vtkmodules.vtkCommonColor import vtkNamedColors from vtkmodules.vtkFiltersCore import vtkTubeFilter from vtkmodules.vtkFiltersSources import vtkLineSource from vtkmodules.vtkFiltersGeneral import vtkWarpTo from vtkmodules.vtkRenderingCore import ( vtkActor, vtkDataSetMapper, vtkRenderWindow, vtkRenderWindowInteractor, vtkRenderer ) def main(): colors = vtkNamedColors() lineSource = vtkLineSource() lineSource.SetPoint1(0, 0, 0) lineSource.SetPoint2(0, 1, 0) lineSource.SetResolution(20) lineSource.Update() tubeFilter = vtkTubeFilter() tubeFilter.SetInputConnection(lineSource.GetOutputPort()) tubeFilter.SetRadius(0.01) # 设置生成的圆柱体/管子的横截面半径是0.01个单位长度 tubeFilter.SetNumberOfSides(50) tubeFilter.Update() """ vtkWarpTo 是vtk中一个几何变换的过滤器 它可以把输入的点云或模型**“拉向”一个指定的点或方向**,相当于对整个几何体做收缩、伸展或弯曲形变 它可以模拟一种“磁性吸引”或“拉伸到目标点”的效果 主要有两种模式: ①它可以模拟一种“磁性吸引”或“拉伸到目标点”的效果 ②沿着指定方向移动(DirectionMode) """ warpTo = vtkWarpTo() warpTo.SetInputConnection(tubeFilter.GetOutputPort()) warpTo.SetPosition(10, 1, 0) # 指定“目标点”的坐标(即你要拉向的点) warpTo.SetScaleFactor(5) # 设置形变强度,值越大,拉得越“狠” warpTo.AbsoluteOn() # 位移相对于数据集的原点进行,所有的点都会向同一个方向偏移 #warpTo.AbsoluteOff() # 位移相对于该点的当前位置进行计算,会导致每个点偏移到不同的方向 mapper = vtkDataSetMapper() mapper.SetInputConnection(warpTo.GetOutputPort()) mapper.ScalarVisibilityOff() actor = vtkActor() actor.SetMapper(mapper) actor.GetProperty().SetColor(colors.GetColor3d('Gold')) renderer = vtkRenderer() renderWindow = vtkRenderWindow() renderWindow.AddRenderer(renderer) renderWindowInteractor = vtkRenderWindowInteractor() renderWindowInteractor.SetRenderWindow(renderWindow) renderer.SetBackground(colors.GetColor3d('Green')) renderer.AddActor(actor) renderWindow.SetWindowName('WarpTo') renderWindow.Render() renderWindowInteractor.Initialize() renderWindowInteractor.Start() if __name__ == '__main__': main()
http://www.jsqmd.com/news/118593/

相关文章:

  • FactoryIO 自动化仿真:PLC 学习的绝佳入门模型
  • #1
  • 模板元编程
  • Open-AutoGLM深度解析:为什么顶尖工程师都在用它管理知识?
  • 2025年贵阳管道疏通联系方式汇总: 全市专业服务官方联系通道与高效合作指引 - 品牌推荐
  • 掌握这3种高级配置模式,轻松玩转Open-AutoGLM远程管理
  • Open-AutoGLM送礼怎么选?3大黄金法则+高分推荐清单速看
  • (AI赋能知识管理)Open-AutoGLM如何重塑你的学习闭环?
  • 事务管理de
  • 【AI笔记神器Open-AutoGLM】:5大核心功能解锁知识管理新范式
  • Excalidraw AI在智能制造产线规划中的角色
  • RuledSurfaceFilter通过连接两条不平行的三维曲线(这里是两条直线段)来生成一个光滑的、由直线构成的曲面
  • 2025年南通管道疏通联系方式汇总:全市专业服务商官方联系方式与高效合作指引 - 品牌推荐
  • 为什么90%的企业都低估了Open-AutoGLM的远程诊断能力?真相令人震惊
  • AI赋能Excalidraw:自然语言生成架构图全攻略
  • Excalidraw AI提升市场营销活动策划效率
  • 2025年南通管道疏通联系方式汇总:全市专业服务商官方联系渠道与高效合作指引 - 品牌推荐
  • 从零构建AI读书助手,Open-AutoGLM实践路径全公开
  • 选对苗木批发基地,2025年这份权威榜单请收好!br,金叶女贞/油松/金森女贞/金叶复叶槭/红叶李/丝棉木/栾树苗木批发基地批发商排行榜 - 品牌推荐师
  • 别再错过!Open-AutoGLM仅限内测的功能曝光,手慢无
  • Python有哪些冷门但好用的库?10个隐藏库推荐
  • Excalidraw AI简化SCM供应链架构表达
  • 从杂乱到清晰:Open-AutoGLM实现笔记自动结构化的3个关键步骤
  • Open-AutoGLM到底有多强?1个工具解决90%的笔记混乱问题
  • CAN:STM32 CAN外设2 - 详解
  • 14、网络安全综合指南:区域、协议与认证详解
  • Excalidraw手绘风格图表让技术文档更生动
  • day19-Trae开发微信小程序03
  • Open-AutoGLM书籍智能解析技术深度剖析(仅限专业人士阅读)
  • 为什么你的Open-AutoGLM远程连接总失败?这7个坑你一定得避开