JGraphX生成的通风网络图导出为解算图模型时确保邻接矩阵正确的处理

本文主要是介绍JGraphX生成的通风网络图导出为解算图模型时确保邻接矩阵正确的处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

JGraphX生成的通风网络图,反映了风网的拓扑关系,但是Jgraph中的edge的节点mxcell虽然是正确的,但是其中的Node却不是与label对应的,

其原因可能是由于插入边时的方法问题,


所以在网络图导出为解算图时,应进行如下处理:

mxgraph.selectVertices();Object[] vcells = graphComponent.getGraph().getSelectionCells();NodeList nl = new NodeList();for (int i = 0; i < vcells.length; i++) {mxCell cell = (mxCell) vcells[i];Node n = (Node) cell.getValue();n.setNodeID(Integer.valueOf(cell.getId()));nl.add(n);}mxgraph.selectEdges();Object[] cells = graphComponent.getGraph().getSelectionCells();System.out.println("分支数:" + cells.length);mxAnalysisGraph aGraph = new mxAnalysisGraph();aGraph.setGraph(mxgraph);boolean isConnected = mxGraphStructure.isConnected(aGraph);if (!isConnected) {JOptionPane.showMessageDialog(null, "网络图不是连通图,请检查!", "错误",JOptionPane.ERROR_MESSAGE);}EdgeList el = new EdgeList();mxgraph.refresh();graphComponent.updateUI();for (int i = 0; i < cells.length; i++) {mxCell c = (mxCell) cells[i];VentEdge ve = (VentEdge) c.getValue();if (!ve.isGudingQ()) {ve.setAirH(0);ve.setAirQ(0);ve.setNT(0);}int outdegree = mxGraphStructure.outdegree(aGraph,c.getSource());// System.out.println(outdegree+".............");Node bn = (Node) c.getSource().getValue();Node nbn = nl.getNode(bn.getLabel());ve.setBnode(nbn);Node en = (Node) c.getTarget().getValue();Node nen = nl.getNode(en.getLabel());ve.setEnode(nen);// if (ve.getLabel() == null || ve.getLabel().equals(""))ve.setLabel(ve.getBnode() + "--->" + ve.getEnode());System.out.println(ve);System.out.println(ve.getBnode() + "--" + ve.getEnode()+ "   " + ve.getR() + "   " + ve.getAirH());



这篇关于JGraphX生成的通风网络图导出为解算图模型时确保邻接矩阵正确的处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/880094

相关文章

解决docker目录内存不足扩容处理方案

《解决docker目录内存不足扩容处理方案》文章介绍了Docker存储目录迁移方法:因系统盘空间不足,需将Docker数据迁移到更大磁盘(如/home/docker),通过修改daemon.json配... 目录1、查看服务器所有磁盘的使用情况2、查看docker镜像和容器存储目录的空间大小3、停止dock

使用EasyPoi快速导出Word文档功能的实现步骤

《使用EasyPoi快速导出Word文档功能的实现步骤》EasyPoi是一个基于ApachePOI的开源Java工具库,旨在简化Excel和Word文档的操作,本文将详细介绍如何使用EasyPoi快速... 目录一、准备工作1、引入依赖二、准备好一个word模版文件三、编写导出方法的工具类四、在Export

5 种使用Python自动化处理PDF的实用方法介绍

《5种使用Python自动化处理PDF的实用方法介绍》自动化处理PDF文件已成为减少重复工作、提升工作效率的重要手段,本文将介绍五种实用方法,从内置工具到专业库,帮助你在Python中实现PDF任务... 目录使用内置库(os、subprocess)调用外部工具使用 PyPDF2 进行基本 PDF 操作使用

前端导出Excel文件出现乱码或文件损坏问题的解决办法

《前端导出Excel文件出现乱码或文件损坏问题的解决办法》在现代网页应用程序中,前端有时需要与后端进行数据交互,包括下载文件,:本文主要介绍前端导出Excel文件出现乱码或文件损坏问题的解决办法,... 目录1. 检查后端返回的数据格式2. 前端正确处理二进制数据方案 1:直接下载(推荐)方案 2:手动构造

k8s admin用户生成token方式

《k8sadmin用户生成token方式》用户使用Kubernetes1.28创建admin命名空间并部署,通过ClusterRoleBinding为jenkins用户授权集群级权限,生成并获取其t... 目录k8s admin用户生成token创建一个admin的命名空间查看k8s namespace 的

分析 Java Stream 的 peek使用实践与副作用处理方案

《分析JavaStream的peek使用实践与副作用处理方案》StreamAPI的peek操作是中间操作,用于观察元素但不终止流,其副作用风险包括线程安全、顺序混乱及性能问题,合理使用场景有限... 目录一、peek 操作的本质:有状态的中间操作二、副作用的定义与风险场景1. 并行流下的线程安全问题2. 顺

Python异常处理之避免try-except滥用的3个核心原则

《Python异常处理之避免try-except滥用的3个核心原则》在Python开发中,异常处理是保证程序健壮性的关键机制,本文结合真实案例与Python核心机制,提炼出避免异常滥用的三大原则,有需... 目录一、精准打击:只捕获可预见的异常类型1.1 通用异常捕获的陷阱1.2 精准捕获的实践方案1.3

Pandas处理缺失数据的方式汇总

《Pandas处理缺失数据的方式汇总》许多教程中的数据与现实世界中的数据有很大不同,现实世界中的数据很少是干净且同质的,本文我们将讨论处理缺失数据的一些常规注意事项,了解Pandas如何表示缺失数据,... 目录缺失数据约定的权衡Pandas 中的缺失数据None 作为哨兵值NaN:缺失的数值数据Panda

C++中处理文本数据char与string的终极对比指南

《C++中处理文本数据char与string的终极对比指南》在C++编程中char和string是两种用于处理字符数据的类型,但它们在使用方式和功能上有显著的不同,:本文主要介绍C++中处理文本数... 目录1. 基本定义与本质2. 内存管理3. 操作与功能4. 性能特点5. 使用场景6. 相互转换核心区别

Java 中的 equals 和 hashCode 方法关系与正确重写实践案例

《Java中的equals和hashCode方法关系与正确重写实践案例》在Java中,equals和hashCode方法是Object类的核心方法,广泛用于对象比较和哈希集合(如HashMa... 目录一、背景与需求分析1.1 equals 和 hashCode 的背景1.2 需求分析1.3 技术挑战1.4