From 9886c494da5adcc9a670e2b7ff2c657a98f27b96 Mon Sep 17 00:00:00 2001 From: lixiaojun <1287241240@qq.com> Date: 星期四, 28 十一月 2024 14:23:30 +0800 Subject: [PATCH] 导入优化 --- WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleLossCurveCtrl.cs | 100 ++++++++++++++++++++++++++++++++++++------------- 1 files changed, 73 insertions(+), 27 deletions(-) diff --git a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleLossCurveCtrl.cs b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleLossCurveCtrl.cs index 0df5a3f..9326ff2 100644 --- a/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleLossCurveCtrl.cs +++ b/WinFrmUI/Yw.WinFrmUI.Hydro.Core/18-loss/01-curve/HydroSingleLossCurveCtrl.cs @@ -47,38 +47,69 @@ } var diagram = this.chartControl1.Diagram as XYDiagram; + #region X杞� + var allDistances = allNodeLossList.Select(x => x.Distance).Distinct().ToList(); var distanceMax = allDistances.Max(); diagram.AxisX.Tickmarks.MinorVisible = false; diagram.AxisX.WholeRange.SideMarginsValue = 0; if (distanceMax <= 10) { + var maxValue = Math.Ceiling(distanceMax); diagram.AxisX.WholeRange.MinValue = 0; - diagram.AxisX.WholeRange.MaxValue = 10; + diagram.AxisX.WholeRange.MaxValue = maxValue; diagram.AxisX.NumericScaleOptions.GridSpacing = 1; + } + else if (distanceMax <= 50) + { + var maxValue = Math.Ceiling(distanceMax / 10); + diagram.AxisX.WholeRange.MinValue = 0; + diagram.AxisX.WholeRange.MaxValue = maxValue * 10; + diagram.AxisX.NumericScaleOptions.GridSpacing = 5; } else if (distanceMax <= 100) { + var maxValue = Math.Ceiling(distanceMax / 10); diagram.AxisX.WholeRange.MinValue = 0; - diagram.AxisX.WholeRange.MaxValue = 100; + diagram.AxisX.WholeRange.MaxValue = maxValue * 10; diagram.AxisX.NumericScaleOptions.GridSpacing = 10; } - else if (distanceMax <= 1000) + else if (distanceMax <= 500) { + var maxValue = Math.Ceiling(distanceMax / 100); diagram.AxisX.WholeRange.MinValue = 0; - diagram.AxisX.WholeRange.MaxValue = 1000; + diagram.AxisX.WholeRange.MaxValue = maxValue * 100; + diagram.AxisX.NumericScaleOptions.GridSpacing = 50; + } + else if (distanceMax <= 3000) + { + var maxValue = Math.Ceiling(distanceMax / 100); + diagram.AxisX.WholeRange.MinValue = 0; + diagram.AxisX.WholeRange.MaxValue = maxValue * 100; diagram.AxisX.NumericScaleOptions.GridSpacing = 100; + } + else if (distanceMax <= 5000) + { + var maxValue = Math.Ceiling(distanceMax / 1000); + diagram.AxisX.WholeRange.MinValue = 0; + diagram.AxisX.WholeRange.MaxValue = maxValue * 1000; + diagram.AxisX.NumericScaleOptions.GridSpacing = 200; } else if (distanceMax <= 10000) { + var maxValue = Math.Ceiling(distanceMax / 1000); diagram.AxisX.WholeRange.MinValue = 0; - diagram.AxisX.WholeRange.MaxValue = 10000; + diagram.AxisX.WholeRange.MaxValue = maxValue * 1000; diagram.AxisX.NumericScaleOptions.GridSpacing = 1000; } else { } + + #endregion + + #region 鎬绘按澶磞杞� var allHeads = allNodeLossList.Select(x => Math.Max(x.StartHead, x.EndHead)).ToList(); var headMax = allHeads.Max(); @@ -91,61 +122,76 @@ diagram.AxisY.NumericScaleOptions.GridSpacing = 1; diagram.AxisY.VisualRange.SetMinMaxValues(0, 10); } - else if (distanceMax <= 100) + else if (headMax <= 100) { + var maxValue = Math.Ceiling(headMax / 10); diagram.AxisY.WholeRange.MinValue = 0; - diagram.AxisY.WholeRange.MaxValue = 100; - diagram.AxisY.NumericScaleOptions.GridSpacing = 10; - diagram.AxisY.VisualRange.SetMinMaxValues(0, 100); + diagram.AxisY.WholeRange.MaxValue = maxValue * 10; + diagram.AxisY.NumericScaleOptions.GridSpacing = 5; + diagram.AxisY.VisualRange.SetMinMaxValues(0, maxValue * 10); } - else if (distanceMax <= 1000) + else if (headMax <= 3000) { + var maxValue = Math.Ceiling(headMax / 100); diagram.AxisY.WholeRange.MinValue = 0; - diagram.AxisY.WholeRange.MaxValue = 1000; + diagram.AxisY.WholeRange.MaxValue = maxValue * 100; + diagram.AxisY.NumericScaleOptions.GridSpacing = 50; + diagram.AxisY.VisualRange.SetMinMaxValues(0, maxValue * 100); + } + else if (headMax <= 6000) + { + var maxValue = Math.Ceiling(headMax / 1000); + diagram.AxisY.WholeRange.MinValue = 0; + diagram.AxisY.WholeRange.MaxValue = maxValue * 1000; diagram.AxisY.NumericScaleOptions.GridSpacing = 100; - diagram.AxisY.VisualRange.SetMinMaxValues(0, 1000); - } - else if (distanceMax <= 10000) - { - diagram.AxisY.WholeRange.MinValue = 0; - diagram.AxisY.WholeRange.MaxValue = 10000; - diagram.AxisY.NumericScaleOptions.GridSpacing = 1000; - diagram.AxisY.VisualRange.SetMinMaxValues(0, 10000); + diagram.AxisY.VisualRange.SetMinMaxValues(0, maxValue * 1000); } else { } + #endregion + + #region 鏍囬珮y杞� + var allElevs = allNodeLossList.Select(x => x.Elev).ToList(); var elevMax = allElevs.Max(); diagram.SecondaryAxesY[0].Tickmarks.MinorVisible = false; diagram.SecondaryAxesY[0].WholeRange.SideMarginsValue = 0; - if (elevMax <= 30) + if (elevMax <= 10) { diagram.SecondaryAxesY[0].WholeRange.MinValue = 0; - diagram.SecondaryAxesY[0].WholeRange.MaxValue = 100; - diagram.SecondaryAxesY[0].NumericScaleOptions.GridSpacing = 10; - diagram.SecondaryAxesY[0].VisualRange.SetMinMaxValues(0, 100); + diagram.SecondaryAxesY[0].WholeRange.MaxValue = 50; + diagram.SecondaryAxesY[0].NumericScaleOptions.GridSpacing = 5; + diagram.SecondaryAxesY[0].VisualRange.SetMinMaxValues(0, 50); } - else if (distanceMax <= 300) + else if (elevMax <= 100) { diagram.SecondaryAxesY[0].WholeRange.MinValue = 0; diagram.SecondaryAxesY[0].WholeRange.MaxValue = 1000; - diagram.SecondaryAxesY[0].NumericScaleOptions.GridSpacing = 100; + diagram.SecondaryAxesY[0].NumericScaleOptions.GridSpacing = 50; diagram.SecondaryAxesY[0].VisualRange.SetMinMaxValues(0, 1000); } - else if (distanceMax <= 3000) + else if (distanceMax <= 500) + { + diagram.SecondaryAxesY[0].WholeRange.MinValue = 0; + diagram.SecondaryAxesY[0].WholeRange.MaxValue = 5000; + diagram.SecondaryAxesY[0].NumericScaleOptions.GridSpacing = 100; + diagram.SecondaryAxesY[0].VisualRange.SetMinMaxValues(0, 5000); + } + else if (distanceMax <= 1000) { diagram.SecondaryAxesY[0].WholeRange.MinValue = 0; diagram.SecondaryAxesY[0].WholeRange.MaxValue = 10000; - diagram.SecondaryAxesY[0].NumericScaleOptions.GridSpacing = 1000; + diagram.SecondaryAxesY[0].NumericScaleOptions.GridSpacing = 500; diagram.SecondaryAxesY[0].VisualRange.SetMinMaxValues(0, 10000); } else { } + #endregion } -- Gitblit v1.9.3