導航:首頁 > 源碼編譯 > 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顏色漸變演算法相關的資料

熱點內容
逆戰文件夾怎麼放 瀏覽:120
怎麼統一刪除文件夾raw文件 瀏覽:121
卡爾曼濾波演算法書籍 瀏覽:769
安卓手機怎麼用愛思助手傳文件進蘋果手機上 瀏覽:844
安卓怎麼下載60秒生存 瀏覽:803
外向式文件夾 瀏覽:240
dospdf 瀏覽:431
怎麼修改騰訊雲伺服器ip 瀏覽:392
pdftoeps 瀏覽:496
為什麼鴻蒙那麼像安卓 瀏覽:736
安卓手機怎麼拍自媒體視頻 瀏覽:186
單片機各個中斷的初始化 瀏覽:724
python怎麼集合元素 瀏覽:481
python逐條解讀 瀏覽:833
基於單片機的濕度控制 瀏覽:499
ios如何使用安卓的帳號 瀏覽:883
程序員公園采訪 瀏覽:812
程序員實戰教程要多長時間 瀏覽:979
企業數據加密技巧 瀏覽:135
租雲伺服器開發 瀏覽:814