news 2026/5/1 7:22:00

DisplacementPlot 结构动态可视化

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
DisplacementPlot 结构动态可视化

一:主要的知识点

1、说明

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

2、知识点纪要

本段代码主要涉及的有①vtkWarpVector 根据向量场对几何体进行形变


二:代码及注释

import vtkmodules.vtkInteractionStyle import vtkmodules.vtkRenderingOpenGL2 from vtkmodules.vtkCommonColor import vtkNamedColors from vtkmodules.vtkIOLegacy import vtkPolyDataReader from vtkmodules.vtkFiltersGeneral import vtkWarpVector from vtkmodules.vtkFiltersCore import vtkPolyDataNormals, vtkVectorDot from vtkmodules.vtkCommonCore import vtkLookupTable from vtkmodules.vtkRenderingCore import vtkColorTransferFunction, vtkActor, vtkDataSetMapper, vtkRenderer, \ vtkRenderWindow, vtkRenderWindowInteractor def main(): colors = vtkNamedColors() file_name, color_scheme = "Data/plate.vtk", 0 plate = vtkPolyDataReader() plate.SetFileName(file_name) plate.SetVectorsName("mode8") # 指定从输入的 .vtk 文件中读取哪个数据数组作为主要的矢量数据 plate.Update() """ vtkWarpVector 根据向量场对几何体进行形变 """ warp = vtkWarpVector() warp.SetInputConnection(plate.GetOutputPort()) warp.SetScaleFactor(0.5) normals = vtkPolyDataNormals() normals.SetInputConnection(warp.GetOutputPort()) """ vtkVectorDot 主要用于计算两个向量场之间的点积,并把结果作为一个新的标量场输出 """ color = vtkVectorDot() # 在这里只有一个输入,因此计算的是法向矢量与活动矢量之间的点积 color.SetInputConnection(normals.GetOutputPort()) lut = vtkLookupTable() MakeLUT(color_scheme, lut) plateMapper = vtkDataSetMapper() plateMapper.SetInputConnection(color.GetOutputPort()) plateMapper.SetLookupTable(lut) plateMapper.SetScalarRange(-1, 1) plateActor = vtkActor() plateActor.SetMapper(plateMapper) ren = vtkRenderer() renWin = vtkRenderWindow() renWin.AddRenderer(ren) iren = vtkRenderWindowInteractor() iren.SetRenderWindow(renWin) ren.AddActor(plateActor) ren.SetBackground(colors.GetColor3d("Wheat")) renWin.SetSize(512, 512) renWin.SetWindowName('DisplacementPlot') ren.GetActiveCamera().SetPosition(13.3991, 14.0764, 9.97787) ren.GetActiveCamera().SetFocalPoint(1.50437, 0.481517, 4.52992) ren.GetActiveCamera().SetViewAngle(30) ren.GetActiveCamera().SetViewUp(- 0.120861, 0.458556, - 0.880408) ren.GetActiveCamera().SetClippingRange(12.5724, 26.8374) renWin.Render() iren.Start() def MakeLUT(colorScheme, lut): nc = 256 ctf = vtkColorTransferFunction() if colorScheme == 1: ctf.SetColorSpaceToDiverging() ctf.AddRGBPoint(0.0, 0.085, 0.532, 0.201) ctf.AddRGBPoint(0.5, 0.865, 0.865, 0.865) ctf.AddRGBPoint(1.0, 0.436, 0.308, 0.631) lut.SetNumberOfTableValues(nc) lut.Build() for i in range(0, nc): rgb = list(ctf.GetColor(float(i) / nc)) rgb.append(1) lut.SetTableValue(i, *rgb) elif colorScheme == 2: nc2 = nc / 2.0 lut.SetNumberOfColors(nc) lut.Build() for i in range(0, int(nc2)): # White to black. v = (nc2 - i) / nc2 lut.SetTableValue(i, v, v, v, 1) for i in range(int(nc2), nc): # Black to white. v = (i - nc2) / nc2 lut.SetTableValue(i, v, v, v, 1) else: ctf.SetColorSpaceToDiverging() ctf.AddRGBPoint(0.0, 0.230, 0.299, 0.754) ctf.AddRGBPoint(1.0, 0.706, 0.016, 0.150) lut.SetNumberOfTableValues(nc) lut.Build() for i in range(0, nc): rgb = list(ctf.GetColor(float(i) / nc)) rgb.append(1.0) lut.SetTableValue(i, *rgb) if __name__ == '__main__': main()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/3 3:22:24

ExponentialCosine 复杂的二维数学函数映射为3D曲面

一:主要的知识点 1、说明 本文只是教程内容的一小段,因博客字数限制,故进行拆分。主教程链接:vtk教程——逐行解析官网所有Python示例-CSDN博客 2、知识点纪要 本段代码主要涉及的有①vtkWarpScalar根据标量值沿着发现方向进行…

作者头像 李华
网站建设 2026/5/1 7:21:59

HardwareSelector 单元网格面鼠标选择

一:主要的知识点 1、说明 本文只是教程内容的一小段,因博客字数限制,故进行拆分。主教程链接:vtk教程——逐行解析官网所有Python示例-CSDN博客 2、知识点纪要 本段代码主要涉及的有①vtkHardwareSelector网格面的UI交互选择 …

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

ResNet18实战:智能监控系统物体识别部署案例

ResNet18实战:智能监控系统物体识别部署案例 1. 引言:通用物体识别的工程价值与ResNet-18的定位 在智能监控、安防预警、行为分析等实际场景中,通用物体识别是构建视觉感知能力的基础环节。传统方案依赖人工规则或轻量级分类器,…

作者头像 李华
网站建设 2026/5/1 6:14:55

ResNet18优化实战:推理吞吐量提升

ResNet18优化实战:推理吞吐量提升 1. 背景与挑战:通用物体识别中的性能瓶颈 在AI应用落地过程中,模型的稳定性和推理效率是决定用户体验的核心因素。基于TorchVision官方实现的ResNet-18模型因其轻量、稳定、泛化能力强,广泛应用…

作者头像 李华
网站建设 2026/4/25 10:15:36

ResNet18实战教程:工业缺陷检测系统搭建指南

ResNet18实战教程:工业缺陷检测系统搭建指南 1. 引言:从通用识别到工业场景的迁移价值 1.1 通用物体识别为何能用于工业缺陷检测? 在智能制造与自动化质检领域,传统机器视觉依赖规则化图像处理(如边缘检测、模板匹配…

作者头像 李华
网站建设 2026/4/28 10:36:41

ResNet18性能对比:与ResNet50差异分析

ResNet18性能对比:与ResNet50差异分析 1. 引言:为何关注ResNet18与ResNet50的性能差异? 在深度学习图像分类任务中,ResNet(残差网络) 自2015年提出以来,已成为计算机视觉领域的基石模型之一。…

作者头像 李华