Ⅰ 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;
}
}