From 217c17853daef559040a66aced4a613c4308e4ca Mon Sep 17 00:00:00 2001
From: Shuxia Ning <NingShuxia0927@outlook.com>
Date: 星期三, 23 十月 2024 13:04:23 +0800
Subject: [PATCH] 曲线并联

---
 WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/03-serial-parallel/PumpSerialParallelChart.cs |   83 +++++++++++++++++++++++++++++++++--------
 1 files changed, 66 insertions(+), 17 deletions(-)

diff --git a/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/03-serial-parallel/PumpSerialParallelChart.cs b/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/03-serial-parallel/PumpSerialParallelChart.cs
index da94d99..413b980 100644
--- a/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/03-serial-parallel/PumpSerialParallelChart.cs
+++ b/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/03-serial-parallel/PumpSerialParallelChart.cs
@@ -1,7 +1,6 @@
 锘縰sing DevExpress.Utils;
 using DevExpress.XtraCharts;
 using System.Text;
-using System.Windows.Forms;
 using Yw.Geometry;
 
 namespace Yw.WinFrmUI.Phart
@@ -15,9 +14,7 @@
         {
             InitializeComponent();
             InitialChart();
-            this.chartControl1.RuntimeHitTesting = true; 
-            //this.chartControl1.SelectionMode = ElementSelectionMode.Single;
-            //this.chartControl1.SeriesSelectionMode = SeriesSelectionMode.Series;
+            this.chartControl1.RuntimeHitTesting = true;  
         }
 
         #region Private Variable 
@@ -153,7 +150,7 @@
 
         #endregion
 
-        #region Add Update  Curve
+        #region Add Set   
 
         /// <summary>
         /// 娣诲姞鏇茬嚎
@@ -165,6 +162,20 @@
                 return;
             _vm_list = new List<PumpSerialParallelInfoViewModel>();
             _design_pt = design_pt;
+            _initialData = true;
+            _vm_list.AddRange(vm_list);
+            UpdateChart(true);
+        }
+
+        /// <summary>
+        /// 娣诲姞鏇茬嚎
+        /// </summary>
+        /// <param name="vm_list"></param>
+        public void Add(List<PumpSerialParallelInfoViewModel> vm_list)
+        {
+            if (vm_list == null || !vm_list.Any())
+                return;
+            _vm_list = new List<PumpSerialParallelInfoViewModel>(); 
             _initialData = true;
             _vm_list.AddRange(vm_list);
             UpdateChart(true);
@@ -185,6 +196,23 @@
             _vm_list.Add(vm);
             UpdateChart(true);
         }
+
+        /// <summary>
+        /// 娣诲姞鏇茬嚎
+        /// </summary>
+        /// <param name="vm"></param>
+        public void Add(PumpSerialParallelInfoViewModel vm)
+        {
+            if (vm == null)
+                return;
+            if (_vm_list == null)
+                _vm_list = new List<PumpSerialParallelInfoViewModel>(); 
+            _initialData = true;
+            _vm_list.Add(vm);
+            UpdateChart(true);
+        }
+
+       
 
         /// <summary>
         /// 璁剧疆鏇茬嚎
@@ -243,7 +271,7 @@
                 }
             } 
         }
-        
+
         /// <summary>
         /// 璁剧疆璁捐鐐�
         /// </summary>
@@ -251,7 +279,7 @@
         public void SetDesignPt(Yw.Geometry.Point2d design_pt)
         {
             _design_pt = design_pt;
-            UpdateChart(true);
+            UpdateChart(true,true);
         }
 
 
@@ -286,7 +314,7 @@
         /// 鏇存柊鍥捐〃
         /// </summary>
         /// <param name="calc_coordinate">璁$畻鍧愭爣</param>
-        public void UpdateChart(bool calc_coordinate = false)
+        public void UpdateChart(bool calc_coordinate = false, bool calc_eq = false)
         {
             if (calc_coordinate || _coordinate_paras == null)
             {
@@ -294,14 +322,13 @@
                 CalcCoordinate();
             }
 
-            CalcSeries();
+            CalcSeries(calc_eq);
 
             CalcChartAxis();
 
             CalcWorkPointByQ();
 
             CalcTextAnchorPoint();
-
         }
 
         #endregion
@@ -484,17 +511,38 @@
                 _axis_y_qp.GridLines.Visible = true;
             }
 
+            var minQ = _coordinate_paras.CoordMinQ;
+            var maxQ = _coordinate_paras.DispMaxQ();
 
-            _axis_x_q.SetAxisRange(_coordinate_paras.CoordMinQ, _coordinate_paras.DispMaxQ());
-            _axis_y_qh.SetAxisRange(_coordinate_paras.DispMinH(), _coordinate_paras.DispMaxH());
-            _axis_y_qe.SetAxisRange(_coordinate_paras.DispMinE(), _coordinate_paras.DispMaxE());
-            _axis_y_qp.SetAxisRange(_coordinate_paras.DispMinP(), _coordinate_paras.DispMaxP());
+
+            var minH = _coordinate_paras.DispMinH();
+            var maxH = _coordinate_paras.DispMaxH();
+
+
+            var minE = _coordinate_paras.DispMinE();
+            var maxE = _coordinate_paras.DispMaxE();
+
+
+
+            var minP = _coordinate_paras.DispMinP();
+            var maxP = _coordinate_paras.DispMaxP();
+
+            if (double.IsNaN(minP)||double.IsNaN(maxP))
+            {
+                minP = 0;
+                maxP = 1000;
+            }
+
+            _axis_x_q.SetAxisRange(minQ, maxQ);
+            _axis_y_qh.SetAxisRange(minH, maxH);
+            _axis_y_qe.SetAxisRange(minE, maxE);
+            _axis_y_qp.SetAxisRange(minP, maxP);
         }
 
         /// <summary>
         /// 璁$畻绯诲垪
         /// </summary>
-        private void CalcSeries()
+        private void CalcSeries(bool calc_eq)
         {
             this.chartControl1.BeginInit();
             this.chartControl1.Series.Clear();
@@ -519,13 +567,14 @@
                     else
                     {
                         CreateLineSeries(vm);
-                        CreateEqSeries(vm, _design_pt);
+                        if (calc_eq)
+                            CreateEqSeries(vm, _design_pt);
                     }
                 }
             }
             else
             {
-                LineVisible = false;
+                //LineVisible = false;
             }
             this.chartControl1.EndInit();
         }

--
Gitblit v1.9.3