From fab5d6e30b9a42a1f94524fca74ef227d2c963e4 Mon Sep 17 00:00:00 2001
From: cloudflight <cloudflight@126.com>
Date: 星期六, 20 七月 2024 11:12:32 +0800
Subject: [PATCH] 1

---
 Hydraulic/Hydro.MapUI/WindowsForm/Form_Color.cs |   73 +++++++-----------------------------
 1 files changed, 15 insertions(+), 58 deletions(-)

diff --git a/Hydraulic/Hydro.MapUI/WindowsForm/Form_Color.cs b/Hydraulic/Hydro.MapUI/WindowsForm/Form_Color.cs
index ac50cae..9facb18 100644
--- a/Hydraulic/Hydro.MapUI/WindowsForm/Form_Color.cs
+++ b/Hydraulic/Hydro.MapUI/WindowsForm/Form_Color.cs
@@ -24,6 +24,8 @@
         public Template Template { get; private set; }
 
         private List<Colour> Colours = new List<Colour>();
+
+        
         private Colour CurrenColour
         {
             get {
@@ -318,14 +320,14 @@
 
         private void GenerateFloorsButton_Click(object sender, EventArgs e)
         {
-            if (CurrenColour==null)
+            if (CurrenColour == null)
             {
-                simpleButton9_Click(1,new EventArgs());
+                simpleButton9_Click(1, new EventArgs());
             }
             // 闅愯棌閿欒鏍囩
             ErrorLabel.Visible = false;
 
-            
+
 
             float minFloorIndex;
             float maxFloorIndex;
@@ -346,7 +348,7 @@
                 ErrorLabel.Visible = true;
                 return;
             }
-            if (!int.TryParse(tb_ColourNum.Text,out ColourNum))
+            if (!int.TryParse(tb_ColourNum.Text, out ColourNum))
             {
                 ErrorLabel.Text = "绾ф暟蹇呴』鏄暟瀛�";
                 ErrorLabel.Visible = true;
@@ -366,7 +368,7 @@
             //}
 
 
-            CurrenColour.color0= color0;
+            CurrenColour.color0 = color0;
             CurrenColour.color1 = color1;
             CurrenColour.maxNum = maxFloorIndex;
             CurrenColour.minNum = minFloorIndex;
@@ -376,33 +378,13 @@
             //string tempID = BackgroundImgTextBox_q.Text;
 
             // 閫愬眰鐢熸垚妤煎眰
-            for (int i = 0; i < ColourNum; i++)
-            {
-                DRange currentRange =new DRange(minFloorIndex + i * (maxFloorIndex- minFloorIndex)/ColourNum, minFloorIndex + (i+1) * (maxFloorIndex - minFloorIndex) / ColourNum);
-                Color c;
-                //鑾峰彇color0鍜宑olor1锛孋olour涓瓑鍒嗛鑹诧紝绗竴涓负color0锛屾渶鍚庝竴涓负color1锛屼腑闂寸殑涓虹瓑鍒嗛鑹�
-                if (i == 0)
-                {
-                    c = color0;
-                }
-                else if (i == ColourNum-1)
-                {
-                    c = color1;
-                }
-                else
-                {
-                    c = Color.FromArgb(color0.R + (color1.R - color0.R) / (ColourNum - 1) * i, color0.G + (color1.G - color0.G) / (ColourNum - 1) * i, color0.B + (color1.B - color0.B) / (ColourNum-1) * i);
-                    
-                }
-
-                
-                ColourItem newFloor = new ColourItem(currentRange,c);
-                floors.Add(newFloor);
-            }
-
+            var items=Colour.GetColourItems(minFloorIndex, maxFloorIndex, ColourNum, color0, color1);
+            floors.AddRange(items);
             // 鏇存柊妤煎眰鍒楄〃
             UpdateColourItemList();
         }
+
+        
 
         private void SelectImageButton_Click_q(object sender, EventArgs e)
         {
@@ -563,35 +545,10 @@
             if (CurrenColour == null) return;
             double max = 0;
             double min = 0;
-
-            switch(CurrenColour.Type)
-            {
-                case ColourType.鑺傜偣鑷敱鍘嬪姏:
-                    max=this.Template.network.Nodes.Where(node=>!(node is ReservoirViewModel || node is TankViewModel)).Max(node => node.EN_PRESSURE);
-                    min=this.Template.network.Nodes.Where(node => !(node is ReservoirViewModel || node is TankViewModel)).Min(node => node.EN_PRESSURE);
-                    break;
-                case ColourType.鑺傜偣缁濆鍘嬪姏:
-                    max = this.Template.network.Nodes.Where(node => !(node is ReservoirViewModel || node is TankViewModel)).Max(node => node.EN_PRESSURE);
-                    min = this.Template.network.Nodes.Where(node => !(node is ReservoirViewModel || node is TankViewModel)).Min(node => node.EN_PRESSURE);
-                    break;
-                case ColourType.鑺傜偣闇�姘撮噺:
-                    max = this.Template.network.Nodes.Where(node => !(node is ReservoirViewModel || node is TankViewModel)).Max(node => node.EN_DEMAND);
-                    min = this.Template.network.Nodes.Where(node => !(node is ReservoirViewModel || node is TankViewModel)).Min(node => node.EN_DEMAND);
-                    break;
-                case ColourType.绠$嚎娴侀噺:
-                    max = this.Template.network.Links.Max(link => link.EN_FLOW);
-                    min = this.Template.network.Links.Min(link => link.EN_FLOW);
-                    break;
-                case ColourType.绠$嚎娴侀��:
-                    max = this.Template.network.Links.Max(link => link.EN_VELOCITY);
-                    min = this.Template.network.Links.Min(link => link.EN_VELOCITY);
-                    break;
-                default:
-                    break;
-
-            }
-            tb_minFloorIndex.Text = min.ToString();
-            tb_maxFloorIndex.Text = max.ToString();
+            var doubles=this.Template.network.getMinMax(CurrenColour.Type);
+            
+            tb_minFloorIndex.Text = doubles[0].ToString();
+            tb_maxFloorIndex.Text = doubles[1].ToString();
         }
 
         private void btn_useColour_Click(object sender, EventArgs e)

--
Gitblit v1.9.3