RGB函数如何实现颜色从红到黄到绿最后渐变为蓝色?

RGB函数如何实现颜色从红到黄到绿最后渐变为蓝色?,第1张

在属性里面-你找到FORM1的窗体属性-那边有2个有颜色的属性值旁边是有个颜色小框框的。你把它换了就可以了。

具体换什么颜色你自己看着来换。。

追问:

我的意思是用color.FormArgb()方法

回答:

vb6的vbWhite在VB.NET中是Color.White

vb6的&H808080在VB.NET中是Color.FormArgb(&H808080)

如果是System.UInt32

With txtHtml

.SetColor(CodeMax.cmColorItem.cmClrLeftMargin, &H808080)

.SetColor(CodeMax.cmColorItem.cmClrLineNumberBk, &H808080)

.SetColor(CodeMax.cmColorItem.cmClrLineNumber, i)

.HighlightedLine = 0

End With

这段时间在VB6中运行正常,但是在VB.net中就会提示说"&H808080"无法转换为System.Uint32

Convert.ToUInt32(&H808080)就行了,如果用VB2005就支持无符号数了,VB.NET暂时不支持。

补充:

函数RGB,格式:

RGB(red,green,blue),red、green、blue取值0~255。

函数QBColor,格式:

QBColor(color),color取值0~15,代表颜色编号,即只能表示16种颜色。

RGB 函数

返回一个 Long整数,用来表示一谈裤历个 RGB 颜色值。

语法

RGB(red, green, blue)

RGB 函数的语法含有以下这些命名参数

部分 描述

red 必要参数;Variant (Integer)。数值范围从 0 到 255,表示颜色的红色成份。

green 必要参数;Variant (Integer)。数值范围从 0 到 255,表示颜色的绿色成份。

blue 必要参数;Variant (Integer)。数值范围从 0 到 255,表示颜色的兰色成份。

说明

可以接受颜色说明的应用程序的方法和属性期望这个含搜说明是一个代表 RGB 颜色值的数值。一个 RGB 颜色值指定红、绿、蓝三原色的相对亮度,生成一个用于显示的特定颜色。

传给 RGB 的任何参数的值,如果超过 255,会被当作 255。

下面的表格显示一些常见的标准颜色,以及这些颜色的红、绿、蓝三原色的成份:

颜色 红色值 绿色值 兰色值 黑色 0 0 0 兰色 0 0 255 绿色 0 255 0 青色 0 255 255 红色 255 0 0 洋红色 255 0 255 黄色 255 255 0 白色 255 255 255 QBColor 函数 返回一个 Long,用来表示所对应颜色值的 RGB 颜色码。

补充:

语法:

QBColor(color)

必要的 color 参数是一个界于 0 到 15 的整型。

设置值

color 参数有以下这些设置:

值 颜色 值 颜色 0 黑色 8 灰色

1 兰色 9 亮兰色 2 绿色 10 亮绿色 3 青色 11 亮青色 4 红色 12 亮红色 5 洋红色 13 亮洋红色 6 黄色 14 亮黄色 7 白色 15 亮白色 说明:color 参数代表使用于早期版本的 Basic(诸如 Microsoft Visual Basic for MS-DOS 以及 Basic Compiler)的颜色值。始于最低有效字节,返回值指定了纯散红、绿、蓝三原色的值,用于设置成 VBA中RGB 系统的对应颜色。

首先理解成你有三个颜色的LED各一个,红绿蓝,然后用三个IO口控制。

第一:占空比,白话就是不停的开关开关(频率至少要达到60赫兹肉眼才不会觉得闪动),当开的时间长,关闭的是间短,则很亮,当开的时间短,关的时间长,则暗哪虚,关闭的时间就是占空比中的神尺:占空。

第二:颜色的混合,可以参考颜色表,百度都很多,就是红+绿=,红+蓝,绿+蓝,红+绿+蓝,然后在这个基础上,调整三个LED的亮度,理论上能达到所有的色值。

第三:这东西其实就是几乎所有LED显像中一个LED的显李瞎燃像方式。

你把0-240 按比例 缩放 一下者数 到 HSL 的 范围,用 HSL-RGB 转换。

HSL--H是色相(0到禅世360度),S是饱和度(0到1),L是亮度(0到1)

规1化的 HSL到RGB颜色值算换子程序:

// nomorized h,s,L 0-1.0

void HSL2RGB(double h, double s, double L,unsigned char *rr, unsigned char *gg,

unsigned char *bb)

{

double v,m,sv, vs0, c1, c2,xiaoshu,r,g,b

int ih

r = Lg = Lb = L

if (L <= 0.5) v = L * (1.0 + s)else v = L + s - L * s

if (v >0) {

m = L + L - vsv = (v - m ) / v

h = h * 6.0ih = (int)h

xiaoshu = h - ih

vs0 = v * sv * xiaoshuc1 = m + vs0c2 = v - vs0

switch (ih) {

case 0: r = vg = c1b = mbreak

case 1: r = c2g = vb = mbreak

case 2: r = m g = vb = c1break

case 3: r = mg = c2b = vbreak

case 4: r = c1g = mb = vbreak

case 5: r = v g = mb = c2break

default: break

}

}

*rr = (int) (r * 0xff)*gg = (int) (g * 0xff)*bb = (int) (b * 0xff)

}

把贺嫌肢你3个数值,各除以240,代入子程序即可。

详见:http://hi.baidu.com/svjvcfwticdkmse/item/e6c43a21e385b10977272c0e

彩虹光谱RGB值自动生成程序 (L_o_o_n_i_e == 金色潜鸟)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8244704.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存