请教如何用RGB表示数值大小?

evans_xu 2008-04-25 09:15:07
数值的范围是0到4096,现在要求是数值为0时对应的颜色是蓝色,数值为2048时对应的颜色是红色,数值为4096时对应的是绿色,请教在0到4096内的任意一个值对应的颜色是什么颜色?
...全文
485 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
h_w_king 2008-04-25
  • 打赏
  • 举报
回复
但这样的颜色表只能表示蓝到红和红到绿的颜色范围.
h_w_king 2008-04-25
  • 打赏
  • 举报
回复
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要的颜色表.
gomoku 2008-04-25
  • 打赏
  • 举报
回复
你可以把(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;
}
evans_xu 2008-04-25
  • 打赏
  • 举报
回复
我的意思是1024对应的(R,G,B)的值分别是多少?
evans_xu 2008-04-25
  • 打赏
  • 举报
回复
不太理解1楼的,比如说数值为1024,该是什么颜色呢?
evans_xu 2008-04-25
  • 打赏
  • 举报
回复
着急啊!
h_w_king 2008-04-25
  • 打赏
  • 举报
回复
0 ------> 2048 -----> 4096
蓝 ----> 红 ----> 绿
R 0 ----> 255 ----> 0
G 0 -----> 0 ----> 255
B 255 ----> 0 -----> 0

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧