以前作 asp.net 时候用到颜色都是类似#FF9933  这样的6个数字值。现在在c# (winform)中
用到GDI 画图 例如要达到这样的效果该如何做呢?
要求是 :
    画30个矩形 都是挨着的而且在窗体中的位置是固定的。 但是填充的颜色不是一成不变的 是通过一个判断动态得到的(有30个参数, 一个浮点型数组, 从0-30依次作为从左到右填充矩形的颜色的条件 )
    但颜色是有一个范围 是绿色到红色一系列渐变颜色中的一个颜色。  
比如这30个参数 传过来参数是在0-100之间 那么这个矩形就用严格的绿色填充 要是100-200 那么就是绿色骗红一点的颜色 200-300 就是再偏红一点的颜色。直到>500 的时候就是填充纯红色 
color.FromArgb  参数是r g b 值 我不知道现在它们等于什么的时候能得到一个渐变的在绿到红之间的颜色。整个效果 望高手指点 在这里先谢过大家了~分数只有30分了。。

解决方案 »

  1.   

    纯红是FF0000(R=255,G=0,B=0),纯绿是00FF00(R=0,G=255,B=0)
    中间的颜色就是(R=x,G=x,B=0),但是要用算法计算其亮度什么的是否和纯色一样。你其实应该用另外一种颜色:HSB,色相,对比度,明度
    只要改变色相就能轻松实现你的要求
    .net同样提供HSB色彩支持
      

  2.   

    .net同样提供HSB色彩支持
     如何做呢
      

  3.   

    比如红色是#FF0000就可以使用Color.FromArgb(0x78FF0000);
    比如绿色是#00FF00就可以写成Color.FromArgb(0x7800FF00);