news 2026/4/16 7:57:31

ColorEdges 动态有向图的动态渲染

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
ColorEdges 动态有向图的动态渲染

一:主要的知识点

1、说明

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

2、知识点纪要

本段代码主要涉及的有①有向动态图的创建,②图结构数据的可视化和布局展示


二:代码及注释

import vtkmodules.vtkRenderingOpenGL2 import vtkmodules.vtkInteractionStyle from vtkmodules.vtkCommonColor import vtkNamedColors from vtkmodules.vtkCommonCore import vtkIntArray, vtkLookupTable from vtkmodules.vtkCommonDataModel import vtkMutableDirectedGraph from vtkmodules.vtkViewsInfovis import vtkGraphLayoutView from vtkmodules.vtkViewsCore import vtkViewTheme def main(): colors = vtkNamedColors() # 创建一个动态有向图 graph = vtkMutableDirectedGraph() # AddVertex添加节点(顶点) v1 = graph.AddVertex() v2 = graph.AddVertex() v3 = graph.AddVertex() # AddGraphEdge 添加有向边 graph.AddGraphEdge(v1, v2) graph.AddGraphEdge(v2, v3) # 创建颜色数组 edgeColors = vtkIntArray() edgeColors.SetNumberOfValues(1) edgeColors.SetName('Color') edgeColors.InsertNextValue(0) edgeColors.InsertNextValue(1) # 创建颜色查找表 lookupTable = vtkLookupTable() lookupTable.SetNumberOfTableValues(2) lookupTable.SetTableValue(0, colors.GetColor4d("Red")) lookupTable.SetTableValue(1, colors.GetColor4d("Lime")) lookupTable.Build() graph.GetEdgeData().AddArray(edgeColors) """ vtkGraphLayoutView 专门用于图(Graph)结构数据” 的可视化和布局展示 核心功能是:把一个由节点(Vertices)和边(Edges)组成的图结构,自动排布到 2D 或 3D 空间中,并渲染出来供你交互查看 封装了布局(layout),显示(rendering),交互(interaction) """ graphLayoutView = vtkGraphLayoutView() graphLayoutView.AddRepresentationFromInput(graph) # SetLayoutStrategy 设置布局 graphLayoutView.SetLayoutStrategy('Simple 2D') # graphLayoutView.GetLayoutStrategy().SetEdgeWeightField('Graphs') # graphLayoutView.GetLayoutStrategy().SetWeightEdges(1) # 按属性字段映射边颜色 graphLayoutView.SetEdgeColorArrayName('Color') graphLayoutView.SetEdgeLabelVisibility(1) graphLayoutView.ColorEdgesOn() """ vtkViewTheme 用于统一设置一个 View(比如 vtkGraphLayoutView、vtkTreeMapView、vtkScatterPlotMatrixView 等)的 配色、字体、线条粗细、背景等整体视觉主题 """ theme = vtkViewTheme() theme.SetCellLookupTable(lookupTable) graphLayoutView.ApplyViewTheme(theme) graphLayoutView.ResetCamera() graphLayoutView.GetRenderer().GetActiveCamera().Zoom(0.8) graphLayoutView.Render() # graphLayoutView.GetLayoutStrategy().SetRandomSeed(0) graphLayoutView.GetInteractor().Initialize() graphLayoutView.GetInteractor().Start() if __name__ == '__main__': main()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/1 21:12:00

leetcode 813. Largest Sum of Averages 最大平均值和的分组-耗时91%

Problem: 813. Largest Sum of Averages 最大平均值和的分组 解题过程 使用了动态规划的,耗时91%,若只使用回溯情况太多肯定会超时而且不好控制回溯的步长,所以考虑使用动态规划,存在两个变量,一个是K,另一…

作者头像 李华
网站建设 2026/4/13 10:08:56

重庆DEM数据终极指南:解锁三维地形分析新维度

重庆DEM数据终极指南:解锁三维地形分析新维度 【免费下载链接】重庆地区DEM数据集 探索重庆的地理奥秘,这份DEM数据集为你提供了详尽的高程、等高线与路网信息。无论是专业GIS分析还是三维可视化,tif、kmz和kml格式的多样选择都能满足你的需求…

作者头像 李华
网站建设 2026/4/9 18:41:14

GitHub热门项目复现:基于Miniconda-Python3.9环境

GitHub热门项目复现:基于Miniconda-Python3.9环境 在人工智能研究和开源协作日益深入的今天,一个常见的尴尬场景是:你兴致勃勃地克隆了一个GitHub上的热门项目,按照README执行安装命令,却在第一步就卡住了——“Module…

作者头像 李华
网站建设 2026/4/14 21:32:35

IEEE电力系统接线图完整解决方案:从理论到实践

IEEE电力系统接线图完整解决方案:从理论到实践 【免费下载链接】IEEE各节点系统接线图VISIO版 本仓库提供了一套详尽的电力系统接线图资源,专为电气工程领域的研究者、工程师及学者设计。此资源覆盖了IEEE标准中的多个典型系统,包括3节点、5节…

作者头像 李华
网站建设 2026/4/15 1:51:54

12-Factor Agents终极手册:用BAML解决LLM工具调用混乱难题

12-Factor Agents终极手册:用BAML解决LLM工具调用混乱难题 【免费下载链接】12-factor-agents 模块化构建LLM应用,确保生产级可靠性与高效交付。 项目地址: https://gitcode.com/GitHub_Trending/12/12-factor-agents 你是否曾经在LLM应用开发中遇…

作者头像 李华
网站建设 2026/4/15 17:29:57

Atmosphere自定义固件架构解析:从启动加载到系统重写

Atmosphere自定义固件架构解析:从启动加载到系统重写 【免费下载链接】Atmosphere Atmosphre is a work-in-progress customized firmware for the Nintendo Switch. 项目地址: https://gitcode.com/GitHub_Trending/at/Atmosphere Atmosphere是一个为Ninten…

作者头像 李华