news 2026/6/10 10:36:36

ColoredElevationMap 根据标量进行颜色映射

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ColoredElevationMap 根据标量进行颜色映射

一:主要的知识点

1、说明

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

2、知识点纪要

本段代码主要涉及的有①标量的颜色映射


二:代码及注释

import vtkmodules.vtkInteractionStyle import vtkmodules.vtkRenderingOpenGL2 from vtkmodules.vtkCommonColor import vtkNamedColors from vtkmodules.vtkCommonCore import vtkLookupTable, vtkMinimalStandardRandomSequence, vtkPoints,vtkUnsignedCharArray from vtkmodules.vtkCommonDataModel import vtkPolyData from vtkmodules.vtkFiltersCore import vtkDelaunay2D from vtkmodules.vtkRenderingCore import ( vtkActor, vtkPolyDataMapper, vtkRenderWindow, vtkRenderWindowInteractor, vtkRenderer ) def main(): named_colors = vtkNamedColors() points = vtkPoints() xx, yy, zz = 0.0, 0.0, 0.0 GridSize = 20 rng = vtkMinimalStandardRandomSequence() rng.SetSeed(8775586) for x in range(0, GridSize): for y in range(0, GridSize): rng.Next() xx = x + rng.GetRangeValue(-0.2, 0.2) rng.Next() yy = y + rng.GetRangeValue(-0.2, 0.2) rng.Next() zz = rng.GetRangeValue(-0.5, 0.5) points.InsertNextPoint(xx, yy, zz) inputPolyData = vtkPolyData() inputPolyData.SetPoints(points) # Delaunay2D delaunay = vtkDelaunay2D() delaunay.SetInputData(inputPolyData) delaunay.Update() outputPolyData = delaunay.GetOutput() # 获取其包围盒 bounds = [0.0] * 6 outputPolyData.GetBounds(bounds) # 得到z值的范围 minz = bounds[4] maxz = bounds[5] # 构建颜色映射表 colorLookupTable = vtkLookupTable() colorLookupTable.SetTableRange(minz, maxz) colorLookupTable.Build() # 遍历点并应用颜色 colors = vtkUnsignedCharArray() colors.SetNumberOfComponents(3) colors.SetName("Colors") for i in range(0, outputPolyData.GetNumberOfPoints()): p = [0.0] * 3 outputPolyData.GetPoint(i, p) dcolor = [0.0] * 3 colorLookupTable.GetColor(p[2], dcolor) # 利用当前点的z值得到其对应的rgb颜色 color = [0] * 3 for j in range(0, 3): color[j] = int(255 * dcolor[j]) colors.InsertNextTuple3(color[0], color[1], color[2]) outputPolyData.GetPointData().SetScalars(colors) # Create a mapper and actor mapper = vtkPolyDataMapper() mapper.SetInputData(outputPolyData) """ 由于已经用 outputPolyData.GetPointData().SetScalars(colors) 将颜色数组设置在了默认的 Scalars 槽位,Mapper 应该能够自动找到并使用它 """ actor = vtkActor() actor.SetMapper(mapper) # Create a renderer, render window, and interactor renderer = vtkRenderer() renderWindow = vtkRenderWindow() renderWindow.AddRenderer(renderer) renderWindow.SetWindowName('ColoredElevationMap') renderWindowInteractor = vtkRenderWindowInteractor() renderWindowInteractor.SetRenderWindow(renderWindow) # Add the actor to the scene renderer.AddActor(actor) renderer.SetBackground(named_colors.GetColor3d("DarkSlateGray")) # Render and interact renderWindow.Render() renderWindowInteractor.Start() if __name__ == '__main__': main()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 15:30:12

数据泄露风险高发期!如何快速部署Open-AutoGLM定制化脱敏方案?

第一章:数据泄露风险高发期的挑战与应对在数字化进程加速的背景下,企业面临的数据泄露风险正进入高发期。攻击手段日益复杂,从钓鱼邮件到高级持续性威胁(APT),数据安全防线承受着前所未有的压力。组织不仅需…

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

Open-AutoGLM脱敏数据恢复实战(9大关键步骤全公开)

第一章:Open-AutoGLM脱敏后数据恢复控制在数据安全与隐私保护日益重要的背景下,Open-AutoGLM 提供了一套高效的脱敏机制,同时支持在授权条件下对脱敏数据进行可控恢复。该机制确保敏感信息在传输和存储过程中得到有效保护,又能在合…

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

SSL证书频繁失效?Open-AutoGLM安全通信中断的7个核心原因

第一章:SSL证书频繁失效?Open-AutoGLM安全通信中断的7个核心原因在部署 Open-AutoGLM 架构时,SSL 证书频繁失效已成为影响服务连续性的关键问题。尽管自动续签机制已被广泛采用,但多种配置与环境因素仍可能导致 TLS 握手失败&…

作者头像 李华
网站建设 2026/6/10 23:19:40

从缺陷到智慧:软件测试中的关键教训与成长路径

在软件测试领域,每一次缺陷的漏测、每一次沟通的断裂,不仅是项目中的挫折,更是团队成长的催化剂。本文通过总结测试实践中常见的教训,提炼出可操作的改进策略,帮助测试从业者在复杂项目中构建更稳健的质量防线。 一、…

作者头像 李华
网站建设 2026/6/10 19:45:53

如何在30分钟内修复Open-AutoGLM SSL证书错误?一线工程师亲授秘技

第一章:Open-AutoGLM SSL证书错误的根源解析在部署 Open-AutoGLM 服务过程中,SSL 证书错误是常见且影响服务可用性的关键问题。此类错误通常表现为客户端无法建立安全连接,提示“证书无效”、“主机名不匹配”或“颁发机构不受信任”。深入分…

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

Open-AutoGLM TLS版本升级指南:3步完成安全协议平滑迁移,避免服务中断

第一章:Open-AutoGLM TLS 版本适配优化在部署 Open-AutoGLM 服务过程中,TLS 协议版本的兼容性直接影响到通信安全与客户端连接成功率。随着主流浏览器和操作系统逐步弃用 TLS 1.0 和 1.1,服务端必须升级至 TLS 1.2 或更高版本以确保安全合规。…

作者头像 李华