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/8 15:41:00

LangFlow教育培训合作计划招募启事

LangFlow教育培训合作计划招募启事 在人工智能技术加速落地的今天,如何让非编程背景的学生也能快速上手大语言模型(LLM)应用开发,已成为高校和培训机构面临的核心挑战。传统基于代码的教学方式虽然严谨,但对初学者而言…

作者头像 李华
网站建设 2026/6/5 5:01:07

LangFlow报警规则设定:何时通知运维人员?

LangFlow报警规则设定:何时通知运维人员? 在AI应用快速落地的今天,一个看似简单的智能客服流程,可能因为某次模型调用超时或API密钥失效,在用户毫无察觉的情况下持续“带伤运行”数小时。等到问题被发现时&#xff0c…

作者头像 李华
网站建设 2026/6/6 1:36:30

Open-AutoGLM隐私数据访问审计全解析(零信任安全架构落地必备)

第一章:Open-AutoGLM隐私数据访问审计在构建和部署大型语言模型系统时,确保用户隐私数据的安全与合规访问是核心挑战之一。Open-AutoGLM 作为一款开源的自动推理增强型语言模型框架,集成了细粒度的数据访问控制机制,支持对敏感数据…

作者头像 李华
网站建设 2026/6/8 12:08:05

排座椅【牛客tracker 每日一题】

排座椅 时间限制:1秒 空间限制:50M 知识点:贪心 网页链接 牛客tracker 牛客tracker & 每日一题,完成每日打卡,即可获得牛币。获得相应数量的牛币,能在【牛币兑换中心】,换取相应奖品&a…

作者头像 李华
网站建设 2026/6/8 20:01:53

基于PID的恒温箱控制系统(有完整资料)

资料查找方式:特纳斯电子(电子校园网):搜索下面编号即可编号:T5392305M设计简介:本设计是基于STM32的恒温箱控制系统,主要实现以下功能:1、可通过温度传感器监测温度 2、可以通过按键…

作者头像 李华