From 02c14c9c57dbde72d9c771bd8b0fab1cd023047d Mon Sep 17 00:00:00 2001 From: cloudflight <cloudflight@126.com> Date: 星期一, 13 一月 2025 09:09:22 +0800 Subject: [PATCH] 上下游纵断面分析 --- Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkPathAnalyseExtensions.cs | 12 ++++++++++-- 1 files changed, 10 insertions(+), 2 deletions(-) diff --git a/Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkPathAnalyseExtensions.cs b/Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkPathAnalyseExtensions.cs index 9023953..3ae7f4f 100644 --- a/Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkPathAnalyseExtensions.cs +++ b/Hydro/Yw.EPAnet.Calcu.Core/03-calcu/NetworkPathAnalyseExtensions.cs @@ -178,12 +178,16 @@ /// <param name="network"></param> /// <param name="startJunc"></param> /// <returns></returns> - public static List<Link> AnalyzeUpstreamPath(this Network network, Junction startJunc, CalcuResult calcuResult) + public static List<Link> AnalyzeUpstreamPath(this Network network, Node startJunc, CalcuResult calcuResult) { var dictLinks = calcuResult.LinkList.ToDictionary(p => p.Id); var dictNodes = calcuResult.NodeList.ToDictionary(p => p.Id); var visitedNodes = new HashSet<Node>(); - var maxlink = startJunc.GetPrevLinks(calcuResult.LinkList).OrderByDescending(o => Math.Abs(dictLinks[o.Id].Flow)).ToList()[0]; + visitedNodes.Add(startJunc); + var prevLinks = startJunc.GetPrevLinks(calcuResult.LinkList); + if (prevLinks == null || prevLinks.Count <= 0) return prevLinks; + + var maxlink = prevLinks.OrderByDescending(o => Math.Abs(dictLinks[o.Id].Flow)).ToList()[0]; return network.TraversePipeNetworkALL(maxlink, visitedNodes, -1, true, calcuResult); } /// <summary> @@ -249,6 +253,10 @@ } } + if (direction <0) + { + _links涓昏璺緞.Reverse(); + } return _links涓昏璺緞; -- Gitblit v1.9.3