From c7e02f7991407f48a377b47ad2599f52017e8d55 Mon Sep 17 00:00:00 2001
From: Shuxia Ning <NingShuxia0927@outlook.com>
Date: 星期一, 14 十月 2024 16:01:59 +0800
Subject: [PATCH] 曲线 ok

---
 WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/01-perform/PumpPerformChart.cs |   72 +++++++++++++++++++++++++++--------
 1 files changed, 55 insertions(+), 17 deletions(-)

diff --git a/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/01-perform/PumpPerformChart.cs b/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/01-perform/PumpPerformChart.cs
index 93c824b..2b76162 100644
--- a/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/01-perform/PumpPerformChart.cs
+++ b/WinFrmUI/Yw.WinFrmUI.Phart.Core/01-perform/01-pump-chart/01-chart/01-perform/PumpPerformChart.cs
@@ -33,7 +33,7 @@
         private List<Series> _series_eq_pt_list;
 
         private TextAnnotation _work_pt_txt_annot;
-        
+
         private Yw.Geometry.CubicSpline2d _cubic_spline_qh;
         private Yw.Geometry.CubicSpline2d _cubic_spline_qe;
         private Yw.Geometry.CubicSpline2d _cubic_spline_qp;
@@ -46,9 +46,12 @@
         private List<Yw.Geometry.Point2d> _def_pt_qe_list;
         private List<Yw.Geometry.Point2d> _def_pt_qp_list;
 
-   
-        private PumpGroupPt _design_pt = new(0, 0, 0, 0, 0); 
+
+        private PumpGroupPt _design_pt = new(0, 0, 0, 0, 0);
         private PumpGroupPt _work_point = new(0, 0, 0, 0, 0);
+
+
+        private bool _eq_visible = true;
 
         private PumpCoordinate _coordinate_paras;
         private bool _initial_data = false;
@@ -90,6 +93,9 @@
         #region Public Evnet
 
         public event Action<PumpCoordinate> OnCurveCoordinateChanged;
+
+
+        public event Action<PumpGroupPt> OnCalcQueryPoint = null;
 
         #endregion
 
@@ -219,7 +225,7 @@
                 return;
             }
             List<Yw.Geometry.Point2d> pt_qh_list, pt_qe_list = null, pt_qp_list = null;
-             
+
             pt_qh_list = cubic_spline_qh.GetPointList(12);
 
             if (cubic_spline_qe != null)
@@ -482,11 +488,11 @@
 
                 ((PointSeriesView)_series_pt_qp.View).Pane = _bottom_panel;
                 ((SplineSeriesView)_series_cubic_spline_qp.View).Pane = _bottom_panel;
-                if (series_eq_p_pt_view!=null)
+                if (series_eq_p_pt_view != null)
                 {
-                    series_eq_p_pt_view.Pane  = _bottom_panel;
+                    series_eq_p_pt_view.Pane = _bottom_panel;
                 }
-                 
+
 
             }
             else
@@ -644,7 +650,6 @@
             if (_pt_qh_list == null || !_pt_qh_list.Any())
                 return;
 
-
             var minQ = _pt_qh_list.Min(x => x.X);
             var maxQ = _pt_qh_list.Max(x => x.X);
 
@@ -688,6 +693,11 @@
             //娴嬭瘯灞曠ず鏁堟灉
             _work_pt_txt_annot.Text = workInfoStringBuilder.ToString();
             _work_pt_txt_annot.AutoSize = true;
+
+            if (OnCalcQueryPoint != null)
+            {
+                OnCalcQueryPoint(_work_point);
+            }
 
         }
 
@@ -740,10 +750,10 @@
         }
 
         /// <summary>
-        /// 璁$畻璁捐鐐�
+        /// 璁捐鐐�
         /// </summary>
         /// <param name="design_pt_q"></param>
-        public void CalcDesignPointByQ(double? design_pt_q = null)
+        public void CalcDesignPointByQ(double? design_pt_q = null, double? design_pt_h = null)
         {
             _series_cubic_spline_eq.Visible = true;
             _series_cubic_spline_eq.Points.Clear();
@@ -776,10 +786,17 @@
 
 
             _design_pt.Q = design_pt_q.Value;
-            _design_pt.H = _cubic_spline_qh.GetPointY(_design_pt.Q);
+            if (design_pt_h.HasValue)
+            {
+                _design_pt.H = design_pt_h.Value;
+            }
+            else
+            {
+                _design_pt.H = _cubic_spline_qh.GetPointY(_design_pt.Q);
+            }
 
 
-            _series_cubic_spline_eq.Visible = true;
+            _series_cubic_spline_eq.Visible = _eq_visible;
             var design_pt = new Yw.Geometry.Point2d(_design_pt.Q, _design_pt.H);
             var eq_paras = EquipCurveHelper.CalcEquipCurve(_cubic_spline_qh, design_pt, out Yw.Geometry.Point2d sect_pt);
             if (eq_paras != null && eq_paras.EquipCurve != null)
@@ -793,7 +810,7 @@
             }
 
 
-            var design_pt_qh = CreatePointSeries(Pump.eCurveType.QH, _design_pt.Q, _design_pt.H);
+            var design_pt_qh = CreatePointSeries(Pump.eCurveType.QH, sect_pt.X, sect_pt.Y);
             _series_eq_pt_list.Add(design_pt_qh);
             this.chartControl1.Series.Add(design_pt_qh);
             if (_cubic_spline_qe != null)
@@ -819,8 +836,7 @@
         /// 鍒涘缓鐐圭郴鍒�
         /// </summary> 
         private Series CreatePointSeries(Yw.Pump.eCurveType curve_type, double x, double y)
-        {
-
+        { 
             string name = string.Empty;
             Color color = Color.White;
             AxisYBase axis_y = _axisYQH;
@@ -844,7 +860,7 @@
                     break;
                 case Pump.eCurveType.QP:
                     {
-                        name = "娴侀噺鍔熺巼浣滅敤鐐�";
+                        name = "娴侀噺鍔熺巼璁捐鐐�";
                         color = Perform2dChartDisplay.PointColorQP;
                         axis_y = _axis_y_qp;
                     }
@@ -872,9 +888,11 @@
             series_point.ShowInLegend = true;
             series_point.SeriesPointsSorting = SortingMode.None;
             series_point.SeriesPointsSortingKey = SeriesPointKey.Value_1;
-            series_point.Visible = true;
+            series_point.Visible = _eq_visible;
             series_point.LabelsVisibility = DefaultBoolean.True;
             series_point.Label.TextPattern = "{V:N1}";
+            //series_point.CrosshairLabelPattern = "{V:N1}";
+            series_point.CrosshairLabelVisibility = DefaultBoolean.False;
             series_point.Points.Add(new SeriesPoint(x, new double[] { y }));
 
 
@@ -1033,6 +1051,23 @@
                 return true;
             };
             dlg.ShowDialog();
+        }
+
+        private void barCekEqVisible_CheckedChanged(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
+        {
+            _eq_visible = this.barCekEqVisible.Checked;
+            if (_series_cubic_spline_eq != null)
+            {
+                _series_cubic_spline_eq.Visible = _eq_visible;
+            }
+            if (_series_eq_pt_list != null && _series_eq_pt_list.Any())
+            {
+                foreach (var item in _series_eq_pt_list)
+                {
+                    item.Visible = _eq_visible;
+                }
+            }
+
         }
 
         private void barBtnPositioningMaxQ_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e)
@@ -1206,5 +1241,8 @@
         }
 
         #endregion
+
+   
+
     }
 }

--
Gitblit v1.9.3