⑴ 如何用c語言實現背景顏色漸變
你這個問題太寬泛了,能不能具體點:
1)使用什麼操作系統
2)使用什麼編譯器
3)GUI程序或者console程序
你或許應該這樣問:在Windows XP下面用VC6實現一個背景顏色漸變的windows程序,不需要實現其他功能,要求只使用C語言,不要C++語言。
⑵ 51單片機蜂鳴器5khz到500hz漸變如何實現C語言編程
用延時函數,延時的時間就不會很准。
滿足頻伏差率5KHz、500Hz的要求,就會笑大有一定的誤差。
如果要求的不很嚴格,那還碰廳豎是很容易辦到的。
⑶ 誰能給一個漸進色的演算法--要全一點的
漸進色的話可以這樣做~~~例如從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這個默認個值來填充就行了……
⑷ 用51單片機c語言編寫8個漸變流水燈
定時器控制輸出時間,間接控制占空比能完成.
⑸ C++編程 畫漸變圓形
void CdrawcircleView::OnDraw(CDC* pDC )
{
CdrawcircleDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
pDC->Ellipse(100,100,355,355);
int ii;
CPen pen;
for(int i=0;i<255;i++)
{ ii=i*256*256+i*256+i;
for(int j=0;j<255;j++)
{
if((j-127.5)*(j-127.5)+(i-127.5)*(i-127.5)<=127.5*127.5)
pDC->SetPixel(100+j,100+i, ii);
}
}
// TODO: 在此處為本機數據添加攜廳繪制代碼
}
在mfc中view類的塌隱梁ondraw中就是這個函數團運
⑹ 詳解css顏色漸變表達式,求高手,一字一字的解釋啊
顏色漸變濾鏡
startColorStr : 可選項。字元串(String)。設置或檢索色彩漸變的開始顏色和告舉透明度。其格式為 #AARRGGBB 。 AA
、 RR 、 GG 、 BB 為十六進制正整數。取值范圍為 00 - FF 。 RR
指定紅色值, GG 指定綠色值, BB 指定藍色值,參閱 #RRGGBB
顏色單位。 AA 指定透明度。 00 是完全透明。 FF
是完全不透明。超出取值范圍的值將被恢復為默認值。取值范圍為 #FF000000 - #FFFFFFFF 。默認值為 #FF0000FF 。不透明藍色。
EndColorStr : 可賣友歷選項。字元串(String)。設置或檢索色彩漸變的結束顏色和透明度。參閱 startColorStr 屬性。默認值為 #FF000000 。不透明黑色。
GradientType : 可讀寫。整數值(Integer)。設置或檢索色彩漸變的方向。中搜1 | 01 :默認值。水平漸變。0 :垂直漸變。
⑺ 如何用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語言怎樣設計一個漸變透明的窗口 從左(不透明)到右(透明)
可以試試使用gdi+庫來實現顏色漸變,下邊是一種方法,中滾具體可見: http://download.csdn.net/download/weizengke/3101800有源碼,。
BOOL CTipDlg::OnEraseBkgnd(CDC* pDC)
{
CRect rcClient;
GetClientRect(&rcClient);
GradientFillRect( pDC, rcClient, RGB(0,191,255), RGB(238,238,238), TRUE );
// CPaintDC dc(this);
// Rect picRect;
// CRect clRect;
// GetClientRect(&clRect);
// //GetUpdateRect(clRect);
// picRect.X = clRect.left;
// picRect.Y = clRect.top;
// picRect.Width = clRect.Width();
// picRect.Height = clRect.Height();
//
// Graphics grpx(dc);
// //////////////////////////////陪培團/////////////////////////////蘆橘///////主界面背景
// WCHAR *strPath=L"res\\none.png";
// Image * Img = Image::FromFile(strPath,FALSE);
// grpx.DrawImage(Img,picRect);
return true;
// return CDialog::OnEraseBkgnd(pDC);
}
//實現漸變
void CTipDlg::GradientFillRect( CDC *pDC, CRect &rect, COLORREF col_from, COLORREF col_to, bool vert_grad )
{
TRIVERTEX vert[2];
GRADIENT_RECT mesh;
vert[0].x = rect.left;
vert[0].y = rect.top;
vert[0].Alpha = 0x0000;
vert[0].Blue = GetBValue(col_from) << 8;
vert[0].Green = GetGValue(col_from) << 8;
vert[0].Red = GetRValue(col_from) << 8;
vert[1].x = rect.right;
vert[1].y = rect.bottom;
vert[1].Alpha = 0x0000;
vert[1].Blue = GetBValue(col_to) << 8;
vert[1].Green = GetGValue(col_to) << 8;
vert[1].Red = GetRValue(col_to) << 8;
vert[2].x = rect.right;
vert[2].y = rect.bottom;
vert[2].Alpha = 0x0000;
vert[2].Blue = GetBValue(col_to) << 16;
vert[2].Green = GetGValue(col_to) << 16;
vert[2].Red = GetRValue(col_to) << 16;
mesh.UpperLeft = 0;
mesh.LowerRight = 1;
#if _MSC_VER >= 1300 // only VS7 and above has GradientFill as a pDC member
pDC->GradientFill( vert, 2, &mesh, 1, vert_grad ? GRADIENT_FILL_RECT_V :
GRADIENT_FILL_RECT_H );
#else
GradientFill( pDC->m_hDC, vert, 2, &mesh, 1, vert_grad ? GRADIENT_FILL_RECT_V :
GRADIENT_FILL_RECT_H );
#endif
}
⑼ Authorware入門教程之製作漸變效果
我們在做多媒體作品時,自然少不了用漸變色來裝飾自己。可是,Authorware中卻沒有現成的東東來畫漸變顏色。本著DIY的精神,咱仔細地想了又想,終於可以在Authorware中直接做出漸變效果了。以下是三個小例子:一個是線性漸變、一個是圓的徑向漸變以及一個扇形漸變。
速度條漸變
首先利用其他軟體(比如Windows自帶的畫圖板)得到紅色和黃色的RGB值。返虧打開畫圖板,點擊「顏色→編輯顏色」菜單,彈出「編輯顏色」對話框,單擊其中的「規定自定義顏色」按鈕,然後選中紅色,您就會在最右側看到這個顏色的RGB值了(如圖1)。現在您看到了吧,純紅色的RGB值是(255,0,0),而純黃色的RGB值是(255,255,0)。
您只要把這些內容寫到一個計算圖標里就行了。
h:=100
k:=80
x:=h
b:=0
repeat while x〈=400
x1:=x+1
if b〉255 then
b:=255
end if
SetFrame(1,RGB(255,b,0))
Line(20,x,k,x1,k)
x:=x+1
b:=b+1
end repeat
怎麼樣,帶紅黃漸變的進度條效果是不是很酷啊?如圖2所示。
如果想調整色塊的寬度,就調整Line(20,x,k,x1,k)語句中那個「20」的數值就可以了,而如果您想調整長度呢,就請調整repeat while x〈=400語句中那個「400」的數值。
拖一個計算圖標到流程線上,雙擊打開其輸入窗口,輸入如下的內容:
h:=400
k:=250
p:=0
c:=0
repeat while p〈=130
if c〉=255 then
c:=255
end if
SetFrame(1,RGB(255,c,0))
Circle(2,h-p,k-p,h+p,k+p)
p:=p+1
c:=c+2
end repeat
執行一下,效果怎麼樣?還不錯吧?如圖3所示。如果您想改變一下漸變色,是非漏衫神常簡單的。只要您把上面程序中RGB(255,c,0)中的三個數值做塌槐個調整就可以了。您可以試試RGB(255,c,c)或RGB(c,c,c),甚至RGB(c,255-c,c)。此外,調整一下c:=c+2一句中的數字,可能有意想不到的效果出現喔!扇形漸變您先看看效果,如圖4所示。在Photoshop中我們常見這種效果,是不是?在Authorware中咱們照樣可以把它做出來。您只要在計算圖標中寫入如下的內容:
h:=200
k:=200
x:=0
b:=0
r:=150
angle:=0
repeat while angle〈=2*Pi
x:=r*COS(angle)+h
y:=r*SIN(angle)+k
if b〉255 then
b:=255-(b-255)
end if
SetFrame(1,RGB(255,b,0))
Line(5,h,k,x,y)
b:=b+1
x:=x+1
angle:=angle+0.02
end repeat
OK,執行一下,體驗一下那種成功的快樂吧!
⑽ 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完畢");
}