using Hydro.CommonBase;
|
using System;
|
using System.Collections.Generic;
|
using System.Drawing;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace Hydro.MapView
|
{
|
[Serializable]
|
public class MapOption
|
{
|
public float Link_multiply { get; set; } = 0.6667f;
|
public float junction_multiply { get; set; } = 1f;
|
public bool _ShowValve { get; set; } = true;
|
public bool _ShowJunction { get; set; } = true;
|
|
public bool _ShowStatus { get; set; } = false;
|
|
public bool _ShowFlowDirection { get; set; } = false;
|
|
|
}
|
[Serializable]
|
public class Colour
|
{
|
public string Name { get; set; }
|
public ColourType Type { get; set; }
|
public List<ColourItem> Items { get; set; }
|
|
public bool isNode
|
{
|
get
|
{
|
if (Type==ColourType.节点自由压力 || Type==ColourType.节点需水量)
|
{
|
return true;
|
}
|
else
|
{
|
return false;
|
}
|
}
|
}
|
|
public bool isChoosed { get; set; } = false;
|
|
public float minNum=0;
|
public float maxNum=50;
|
public int ColourCount = 5;
|
public Color color0 = Color.Red;
|
public Color color1 = Color.Blue;
|
|
|
public Colour(ColourType type=ColourType.节点自由压力, List<ColourItem> value=null, string name =null)
|
{
|
Name =name;
|
Type = type;
|
Items = value;
|
if (Items == null) Items = new List<ColourItem>();
|
if (Name==null) Name= type.ToString();
|
}
|
public override string ToString()
|
{
|
return Name;
|
}
|
|
public static List<ColourItem> GetColourItems(float minValue, float maxValue, int ColourNum, Color color0, Color color1)
|
{
|
var colourItems = new List<ColourItem>();
|
for (int i = 0; i < ColourNum; i++)
|
{
|
DRange currentRange = new DRange(minValue + i * (maxValue - minValue) / ColourNum, minValue + (i + 1) * (maxValue - minValue) / ColourNum);
|
Color c;
|
//获取color0和color1,Colour个等分颜色,第一个为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);
|
colourItems.Add(newFloor);
|
}
|
return colourItems;
|
}
|
|
public static int NodeTypeCount = 3;
|
}
|
[Serializable]
|
public class ColourItem
|
{
|
public DRange DRange { get; set; }=new DRange();
|
public Color value;
|
public ColourItem(DRange dRange, Color value)
|
{
|
DRange = dRange;
|
this.value = value;
|
}
|
public ColourItem()
|
{
|
}
|
public ColourItem(ColourItem item)
|
{
|
this.DRange = item.DRange;
|
this.value = item.value;
|
}
|
public override string ToString()
|
{
|
return DRange.ToString();
|
}
|
}
|
public enum ColourType
|
{
|
无=0,
|
节点自由压力=1,
|
节点绝对压力=2,
|
节点需水量=3,
|
管线流量=4,
|
管线流速=5
|
}
|
}
|