渐变颜色生成算法
/// <summary> /// 生成颜色条Item /// </summary> private List<Color> GenColorBarItem(Color startColor,Color endColor) { List<Color> colorList = new List<Color>(); Color sourceColor = startColor; Color destColor = endColor; int redSpace = destColor.R - sourceColor.R; int greenSpace = destColor.G - sourceColor.G; int blueSpace = destColor.B - sourceColor.B; for (int i = 0; i <= 200; i++) { Color vColor = Color.FromArgb( sourceColor.R + (int)((double)i / 200 * redSpace), sourceColor.G + (int)((double)i / 200 * greenSpace), sourceColor.B + (int)((double)i / 200 * blueSpace) ); colorList.Add(vColor); } return colorList; } /// <summary> /// 生成总色条 /// </summary> /// <returns></returns> private List<Color> GenColorBar() { //蓝-绿-黄-橘-红 List<Color> colorList = new List<Color>(); colorList.AddRange(GenColorBarItem(Color.Blue, Color.Green)); colorList.AddRange(GenColorBarItem(Color.Green, Color.Yellow)); colorList.AddRange(GenColorBarItem(Color.Yellow, Color.Orange)); colorList.AddRange(GenColorBarItem(Color.Orange, Color.Red)); for (int i =0;i<colorList.Count;i++) { g.DrawLine(new Pen(colorList[i]), new Point(10 + i, 150), new Point(10 + i, 200)); } return colorList; }
自定义生成的颜色,分辨率。
如图