news 2026/6/10 10:34:20

ImplicitPolyDataDistance 隐式距离显示

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ImplicitPolyDataDistance 隐式距离显示

一:主要的知识点

1、说明

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

2、知识点纪要

本段代码主要涉及的有①vtkImplicitPolyDataDistance计算任意点到几何体表面的符号距离


二:代码及注释

import numpy as np import vtkmodules.vtkRenderingOpenGL2 import vtkmodules.vtkInteractionStyle from vtkmodules.vtkCommonColor import vtkNamedColors from vtkmodules.vtkCommonCore import vtkFloatArray, vtkPoints from vtkmodules.vtkFiltersSources import vtkSphereSource from vtkmodules.vtkFiltersCore import vtkImplicitPolyDataDistance from vtkmodules.vtkCommonDataModel import vtkPolyData from vtkmodules.vtkFiltersGeneral import vtkVertexGlyphFilter from vtkmodules.vtkRenderingCore import ( vtkActor, vtkPolyDataMapper, vtkRenderWindow, vtkRenderWindowInteractor, vtkRenderer ) def main(): colors = vtkNamedColors() sphereSource = vtkSphereSource() sphereSource.SetCenter(0, 0, 0) sphereSource.SetRadius(1.0) sphereSource.Update() sphereMapper = vtkPolyDataMapper() sphereMapper.SetInputConnection(sphereSource.GetOutputPort()) sphereMapper.ScalarVisibilityOff() sphereActor = vtkActor() sphereActor.SetMapper(sphereMapper) # SetOpacity 设置模型是否透明,1完全不透明,0完全透明 sphereActor.GetProperty().SetOpacity(0.3) sphereActor.GetProperty().SetColor(1, 0, 0) """ vtkImplicitPolyDataDistance 计算空间中任意一点到这个多边形几何体表面的符号距离 """ implicitPolyDataDistance = vtkImplicitPolyDataDistance() implicitPolyDataDistance.SetInput(sphereSource.GetOutput()) # 设置隐式距离函数 points = vtkPoints() step = 0.1 for x in np.arange(-2, 2, step): for y in np.arange(-2, 2, step): for z in np.arange(-2, 2, step): points.InsertNextPoint(x, y, z) signedDistance = vtkFloatArray() signedDistance.SetNumberOfComponents(1) signedDistance.SetName("") for pointId in range(points.GetNumberOfPoints()): p = points.GetPoint(pointId) dist_ = implicitPolyDataDistance.EvaluateFunction(p) signedDistance.InsertNextValue(dist_) polyData = vtkPolyData() polyData.SetPoints(points) polyData.GetPointData().SetScalars(signedDistance) """ vtkVertexGlyphFilter 把点集转换成可渲染的几何体 """ vertexGlyphFilter = vtkVertexGlyphFilter() vertexGlyphFilter.SetInputData(polyData) vertexGlyphFilter.Update() signedDistanceMapper = vtkPolyDataMapper() signedDistanceMapper.SetInputConnection(vertexGlyphFilter.GetOutputPort()) signedDistanceMapper.ScalarVisibilityOn() # 根据标量进行着色 signedDistanceActor = vtkActor() signedDistanceActor.SetMapper(signedDistanceMapper) renderer = vtkRenderer() renderer.AddViewProp(sphereActor) renderer.AddViewProp(signedDistanceActor) renderer.SetBackground(colors.GetColor3d('SlateGray')) renderWindow = vtkRenderWindow() renderWindow.AddRenderer(renderer) renderWindow.SetWindowName('ImplicitPolyDataDistance') renWinInteractor = vtkRenderWindowInteractor() renWinInteractor.SetRenderWindow(renderWindow) renderWindow.Render() renWinInteractor.Start() if __name__ == '__main__': main()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 10:33:09

56、SQL与应用服务器及分布式数据库解析

SQL与应用服务器及分布式数据库解析 1. SQL与应用服务器 在当今的网络环境中,应用服务器在连接万维网和后端企业系统(包括企业数据库)方面发挥着重要作用。 1.1 EJB 3.0的优势 EJB 3.0具有诸多优势,推动了实体开发的发展: - 它简化了实体的更新操作。 - 可以使用注解…

作者头像 李华
网站建设 2026/6/10 6:29:14

看,实验室成果加速“落地生金”——解码高校科技成果转化新路径

观点作者:科易网AI技术转移研究院 在数字中国建设的大潮中,地方政府如何通过数字化升级路线图纾解数字化智能化升级的挑战,成为当前亟待解决的重要课题。特别是在科技成果转化领域,高校作为创新策源地和科技成果的“富矿”&#…

作者头像 李华
网站建设 2026/6/10 5:43:51

15分钟实战:用Coroot构建智能运维防御体系

在微服务架构盛行的今天,运维团队经常面临这样的困境:凌晨三点被告警吵醒,却无法快速定位问题根源;开发与运维为"谁该负责这个异常"争论不休;配置Prometheus告警规则耗费数小时,关键故障依然漏报…

作者头像 李华
网站建设 2026/6/10 5:39:56

FaceFusion模型蒸馏实践:用小模型逼近大模型效果

FaceFusion模型蒸馏实践:用小模型逼近大模型效果 在短视频创作、虚拟主播和数字人生成日益普及的今天,人脸替换技术正从实验室走向大众应用。以 FaceFusion 为代表的开源项目凭借其高保真度与流畅性,成为许多开发者和创作者的首选工具。然而&…

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

Proton-GE完整Wayland支持指南:原生游戏体验的终极解决方案

Proton-GE完整Wayland支持指南:原生游戏体验的终极解决方案 【免费下载链接】proton-ge-custom 项目地址: https://gitcode.com/gh_mirrors/pr/proton-ge-custom 想要在Linux系统上彻底告别X11/XWayland的传统限制,享受真正的原生Wayland游戏环境…

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

Kanata键盘定制工具:释放你的键盘无限潜力

Kanata键盘定制工具:释放你的键盘无限潜力 【免费下载链接】kanata Improve keyboard comfort and usability with advanced customization 项目地址: https://gitcode.com/GitHub_Trending/ka/kanata 你是否曾经因为标准键盘布局的限制而感到束缚&#xff1…

作者头像 李华