news 2026/6/10 13:15:40

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 11:55:14

掌握这3种高级配置模式,轻松玩转Open-AutoGLM远程管理

第一章:Open-AutoGLM 远程控制配置 Open-AutoGLM 是一款基于大语言模型的自动化远程控制框架,支持跨平台设备管理与任务调度。通过标准化 API 接口和轻量级代理服务,用户可在任意网络环境下实现对目标主机的安全访问与指令执行。 环境准备 在…

作者头像 李华
网站建设 2026/6/10 12:00:06

混合动力汽车动态规划算法理论油耗计算:Matlab 实现之路

混合动力汽车动态规划算法理论油耗计算,使用matlab编写快速计算程序,整个工程结构模块化,程序清晰易调,输出结果定量统计和图表详尽。 DP为混合动力汽车燃油经济性提供了一种极限油耗的方法,利用DP能够得到特定构型在特…

作者头像 李华
网站建设 2026/6/10 3:18:02

为什么90%的企业都选Open-AutoGLM做文档自动化归档?

第一章:为什么90%的企业都选Open-AutoGLM做文档自动化归档?在数字化转型浪潮中,企业面临海量非结构化文档的管理难题。Open-AutoGLM 凭借其强大的语义理解与自动化处理能力,成为90%头部企业的首选解决方案。该系统基于开源大语言模…

作者头像 李华
网站建设 2026/6/9 21:37:10

Excalidraw AI学术研究引用规范建议

Excalidraw AI学术研究引用规范建议 在当今学术研究与技术设计日益依赖可视化表达的背景下,如何高效、透明且合规地生成技术图示,已成为一个不可忽视的问题。尤其是在系统架构、软件工程或跨学科协作的研究中,图表不仅是成果展示的载体&#…

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

从 6 秒保存到秒级响应:用 SAP ABAP Action Profile 自动邮件发送 Smart Form 的一次真实排障与优化路线

在 SAP CRM(或仍沿用 CRM Order 框架的解决方案)里,保存销售订单看似只是一次业务对象的更新,背后却可能牵动一整串框架逻辑:事务处理、伙伴确定、动作(Action)评估、输出(Smart Form)生成、再到 SAPconnect 外发队列。很多性能问题并不出在你写的那几行增强代码,而是…

作者头像 李华
网站建设 2026/6/9 14:13:48

AI在自动化测试中的反模式:警惕“为了AI而AI”

随着人工智能技术在软件测试领域的快速渗透,越来越多的团队开始将AI驱动测试作为数字化转型的核心战略。然而,在行业狂热追逐技术革新的表象下,一种危险的倾向正在蔓延——将AI视为万能解决方案而忽视测试本质需求的"为了AI而AI"现…

作者头像 李华