导航:首页 > 源码编译 > c颜色渐变算法

c颜色渐变算法

发布时间:2022-09-02 20:02:27

Ⅰ UNITY C#如何将颜色渐变循环

//说明:RGB为光的红绿蓝三原色,(每一种颜色范围0~255)通过改变三种颜色的比例即可调出各种颜色
privatevoidbtn_Color_Click(objectsender,EventArgse)
{
Threadt=newThread(Update);
t.IsBackground=true;
t.Start();
}
newvoidUpdate()
{
inti=0,j=100,k=100;
//变红
for(i=100;i<255;i=i+5)
{
Colorc=Color.FromArgb(i,j,k);
label4.BackColor=c;
Thread.Sleep(100);
}
//变绿
for(j=100;j<255;j+=5)
{
i=100;k=100;
Colorc=Color.FromArgb(i,j,k);
label4.BackColor=c;
Thread.Sleep(100);
}
//变蓝
for(k=100;k<255;k+=5)
{
i=100;j=100;
Colorc=Color.FromArgb(i,j,k);
label4.BackColor=c;
Thread.Sleep(100);
}
MessageBox.Show("色彩展示1完毕");
//彩虹渐变
for(i=0;i<125;i++)
{
Colorc=Color.FromArgb(255-2*i,i,2*i);
label4.BackColor=c;
Thread.Sleep(200);
}
MessageBox.Show("色彩展示2完毕");
}

Ⅱ 颜色渐变算法

//r1, r2 是红色 从r1 到r2.
//g: 绿色 from g1 to g2
//b: from b1 to b2
//从颜色 rgb(r1, g1, b1) 到 rgb(r2, g2, b2) 渐变
void FillFluentRect(HDC hDC, RECT rect, byte r1, byte g1, byte b1, byte r2, byte g2, byte b2)
{
int iWidth = rect.right - rect.left;
int iHeight = rect.bottom - rect.top;

short rDif = r2 - r1;
short gDif = g2 - g1;
short bDif = b2 - b1;

for(int i = 0; i < iWidth; i++)
{
byte rCur, gCur, bCur;
rCur = r1 + (short)(float)(((float)rDif/(float)iWidth)*(float)i);
gCur = g1 + (short)(float)(((float)gDif/(float)iWidth)*(float)i);
bCur = b1 + (short)(float)(((float)bDif/(float)iWidth)*(float)i);

for(int y = 0; y < iHeight; y++)
SetPixel(hDC, rect.left + i, rect.top + y,
RGB(rCur, gCur, bCur));

}
}

Ⅲ 图形图像软件中对两个色彩进行线性渐变的算法是什么是以AB两点色彩(假设为rgb制)的三个参数以及

java吗?这一段我用于生成渐变色的代码,算法挺简单的,手机能看得清楚吗?

	privatevoidaddTwoColor(ColorbeginColor,ColorendColor,intstep){
//用浮点数组存储RGB3色,java中颜色值是0-255
float[]begin=beginColor.getRGBColorComponents(null);//开始的颜色
float[]end=endColor.getRGBColorComponents(null);//介绍的颜色

//这段代码是生成两个颜色之间step数量个渐变色
//没明白你的问题的后半部分,猜测也是要求生成两个颜色之间
//的N个渐变色,即使我理解错,应该问题不大,反正算法简单,
//你一看也就明白
for(intj=0;j<step;j++){
floatf[]=newfloat[3];
for(inti=0;i<3;i++){
//这个就是算法,RGB三色都按同样的算法
f[i]=begin[i]-(begin[i]-end[i])*j/step;
}
Colorcolor=newColor(f[0],f[1],f[2]);
this.colorList.add(color);
}
}

Ⅳ 如何用c语言实现背景颜色渐变

你这个问题太宽泛了,能不能具体点:
1)使用什么操作系统
2)使用什么编译
3)GUI程序或者console程序

你或许应该这样问:在Windows XP下面用VC6实现一个背景颜色渐变的windows程序,不需要实现其他功能,要求只使用C语言,不要C++语言。

Ⅳ 颜色变淡RGB是怎么变化的,求具体的渐变公式

渐变颜色 是在做设计时 做的特殊效果处理 没有绝对的的东西 可以根据你需要的渐变颜色就行调节数值 ,

Ⅵ 谁能给一个渐进色的算法--要全一点的

渐进色的话可以这样做~~~例如从RGB(r1,g1,b1)到RGB(r2,g2,b2)

首先你设置一个步长step,步长你可以取绘制矩形的大小或者是颜色分量差的最大值,我这里就简单地取颜色分量差的量大值吧~~
s1=r1-r2
s2=g1-g2
s3=b1-b2
那么step=max( abs(s1) , abs(s2), abs(s3) )
这样你可以得到
f_r = s1 / (float)step;
f_g = s2 / (float)step;
f_b = s3 / (float)step;

设一个变量i = 0; i < step; i++
新的颜色c = RGB( r1+f_r*i , r2+f_g*i , r3+f_b*i )
==============================
PhotoShop中那个渐变是用OpenGL来渲染的~~~用这个的话就简单多了~~只用指定左边两点和右边两点的颜色,然后以GL_SMOOTH这个默认个值来填充就行了……

Ⅶ 如何用C语言编写一个LED灯渐变的程序

#include<reg51.h>
//设CPU是时钟12MHz的8051系列
dataunsignedcharms;
sbitK1=P0^0;
voidSetupTimer0()
{
TMOD&=0XF0;//仅保留T1信息
TMOD|=0X02;//设置T0:定时功能,方式2,自动重载8位定时器/计数器
TH0=256-250;//定时每0.25ms中断一次
TL0=256-250;
TR0=1;//开启定时器
ET0=1;//定时器0中断打开
}

voidTimer0_ISR()interrupt1//中断服务程序
{
staticdataunsignedcharus250;
if(++us250>=4){++ms;us250=0;}
}

voidmain()
{
dataunsignedcharp1,p2;
ms=0;
SetupTimer0();
EA=1;//全局中断打开
K1=1;
while(1)
{
if(K1){P1=p1=0XFF;P2=p2=0x00;ms=0;continue;}
if(ms<150)continue;
ms=0;
p1<<=1;P1=p1;
p2<<=1;p2|=1;P2=p2;
}
}

阅读全文

与c颜色渐变算法相关的资料

热点内容
哪里有专门注册app实名的 浏览:273
魔爪mx稳定器app去哪里下载 浏览:469
excel如何批量处理电话号码加密 浏览:324
ark命令 浏览:39
seal是不是对称密钥算法 浏览:29
免费学习的app在哪里下载 浏览:177
rfid与单片机 浏览:590
5s相当于安卓什么手机 浏览:690
哈佛商学院pdf 浏览:978
app的ip哪里买 浏览:909
移动天文台app在哪里下载 浏览:923
phpjsonencode乱码 浏览:587
t3的服务器名是什么几把 浏览:69
高中算法语句 浏览:549
安卓充电接头坏如何直接线 浏览:2
mcu编译成库 浏览:296
python官网访问不了了 浏览:98
库卡逻辑编程 浏览:919
加密币驱动 浏览:982
怎么解压后的文件夹没有激活工具 浏览:809