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