数值的范围是0到4096,现在要求是数值为0时对应的颜色是蓝色,数值为2048时对应的颜色是红色,数值为4096时对应的是绿色,请教在0到4096内的任意一个值对应的颜色是什么颜色?

解决方案 »

  1.   

      0 ------> 2048 -----> 4096
      蓝 ---->   红  ---->   绿
    R 0   ----> 255 ---->   0
    G 0  -----> 0  ---->   255
    B 255 ----> 0 ----->    0
      

  2.   

    我的意思是1024对应的(R,G,B)的值分别是多少?
      

  3.   

    你可以把(0-6144)映射到色泽球上(Hue:0-360),再拿回颜色。或者,简单应用的话就用线性来模拟(虽然RGB颜色空间本身是非线性的!):
    int r=0,g=0,b=0;if( 0 <= i && i <= 2048 )
    {
      b = (2048-i) * 255 / 2048;
      r = i * 255 / 2048;
      g = 0;
    }
    else if( 2048 < i && i<=4096 )
    {
      r = (4096-i) * 255 / 2048;
      g = (i - 2048) * 255 / 2048;
      b = 0;
    }
      

  4.   

    if(value>2048)
    {
       r=(int)(255-255*(value-2048)/2048);
       g=(int)(255*(value-2048)/2048);
       b=0;
    }
    else
    {
      r=(int)(255*(value-2048)/2048);
      g=0;
      b=(int)(255-255*(value-2048)/2048);
    }不知是不是LZ要的颜色表.