高手指点:“赤 橙 黄 绿 蓝 靛 紫”颜色的渐变 与 RGB值 有什么关系 ?

theXhunter 2004-04-13 01:00:39
假设是24位的颜色系统,那么RGB的值范围就是(0x000000~0xffffff),那么如题,“赤 橙 黄 绿 蓝 靛 紫”颜色的渐变 和 RGB值 的渐变有什么关系吗?

我好象找不到任何关系?现在我如果想画一个渐变的图形的画,那该怎么办?
...全文
509 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
XHunterX 2004-04-13
  • 打赏
  • 举报
回复
色调的取值范围为0~360,相当于一个圆上循环的铺着“赤 橙 黄 绿 蓝 靛 紫”这些颜色(当然他们是平滑过渡的),其中圆的半径就是饱和度的值。
XHunterX 2004-04-13
  • 打赏
  • 举报
回复
终于找到关系了。
其实色彩的渐变是由"色调"H 来控制的:

H = (1/360) * (90-arctan(F/@3)+ a )
[ 其中:F=(2R-G-B)/(G-B) ; @3 是3的开根号 ; a=0(G>B),a=180(G<B) ]

另外还有两个因素控制颜色,是亮度I 和 饱和度S:
I = (R+G+B)/3
S = 1-( min(R,G,B)/I )

以上3个因素H,S,I 构成了HSI色彩空间。

上面是RGB到HSI的转化,HSI转化为RGB我也不清楚,请楼下的帮忙。
HUNTON 2004-04-13
  • 打赏
  • 举报
回复
其实RGB就可以确定所有的颜色了,看看精华区的这个帖,应该对楼主有帮助:“如何用fillRect 填充一个色彩渐变的三角形”
tianfang 2004-04-13
  • 打赏
  • 举报
回复
好像是做伪彩色吧

赤橙黄绿青蓝紫就可以理解为色温,试试色温和颜色关系吧,不过具体函数我也不了解。应该还有一个参数是亮度,你可以把亮度设一个固定值。


theXhunter 2004-04-13
  • 打赏
  • 举报
回复
对不起,hell190109() ( ) !你误解我的意思了。

我的意思是说:RGB值的变化 生成 平滑的“赤 橙 黄 绿 蓝 靛 紫”颜色过度。而不是你所列举的颜色区域,你列举的颜色并不是全部。

详细的说是这样的:
假设RGB值和参数t存在某种关系f(t):当t从0递增到100(假设)时,那么颜色就从“赤->橙->黄->绿 ->蓝->靛->紫”逐渐的平滑的过度。现在,我的问题就是到底存不存在这样关系f(t) ?
hell190109 2004-04-13
  • 打赏
  • 举报
回复
当然有关系了,通过 rgb 的变化可以调出你能想到的所有颜色


RGB( 0x00,0x00,0x00 ),//#01 黒
RGB( 0x00,0x00,0x80 ),//#02 青
RGB( 0x00,0x80,0x00 ),//#03 緑
RGB( 0xFF,0x00,0x00 ),//#04 赤
RGB( 0x80,0x00,0x00 ),//#05 赤
RGB( 0x80,0x00,0x80 ),//#06 紫
RGB( 0xFF,0x80,0x00 ),//#07 橙
RGB( 0xFF,0xFF,0x00 ),//#08 黄
RGB( 0x00,0xFF,0x00 ),//#09 緑
RGB( 0x00,0x80,0x80 ),//#10 深緑
RGB( 0x00,0xFF,0xFF ),//#11 水
RGB( 0x00,0x00,0xFF ),//#12 青
RGB( 0xFF,0x00,0xFF ),//#13 桃
RGB( 0x80,0x80,0x80 ),//#14 灰
RGB( 0xC0,0xC0,0xC0 ) //#15 灰
RGB( 0xFF,0xFF,0xFF ),//#16 白

4,496

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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