/// <summary>
/// 创建一个色带
/// </summary>
/// <param name="startColor">起始色</param>
/// <param name="endColor">终止色</param>
/// <param name="num">总数</param>
/// <returns></returns>
public static List<System.Drawing.Color> GetColors(int num, System.Drawing.Color startColor, System.Drawing.Color endColor)
{
List<System.Drawing.Color> resultColor = new List<System.Drawing.Color>();
// 计算颜色变化的步长
float step = 1.0f / num;
// 填充颜色数组
for (int i = 0; i < num; i++)
{
// 使用线性插值计算当前颜色
float ratio = i * step;
resultColor.Add(CalColorLerp(startColor, endColor, ratio));
}
return resultColor;
}
public static System.Drawing.Color CalColorLerp(System.Drawing.Color c1, System.Drawing.Color c2, float value)
{
return System.Drawing.Color.FromArgb(
(int)(c1.R + (c2.R - c1.R) * value),
(int)(c1.G + (c2.G - c1.G) * value),
(int)(c1.B + (c2.B - c1.B) * value)
);
}