**
procedure colorful(_sender:tcanvas;_c1,_c2:tcolor;_width,_height:integer;_mode:integer);
var i:integer;rct:trect;r1,g1,b1,r2,g2,b2,r3,g3,b3:byte;
begin
with tcanvas(_sender) do begin
r1:=byte(_c1);
g1:=byte(_c1 shr 8);
b1:=byte(_c1 shr 16);
r2:=byte(_c2);
g2:=byte(_c2 shr 8);
b2:=byte(_c2 shr 16);
case _mode of
1:begin
for i:=0 to _width do begin
if r1>r2 then r3:=r1-muldiv(i,r1-r2,_width) else r3:=r1+muldiv(i,r2-r1,_width);
if g1>g2 then g3:=g1-muldiv(i,g1-g2,_width) else g3:=g1+muldiv(i,g2-g1,_width);
if b1>b2 then b3:=b1-muldiv(i,b1-b2,_width) else b3:=b1+muldiv(i,b2-b1,_width);
brush.color:=rgb(r3,g3,b3);
rct:=rect(i,0,i+1,_height);
fillrect(rct);
end;
end;
2:begin
for i:=0 to _height do begin
if r1>r2 then r3:=r1-muldiv(i,r1-r2,_height) else r3:=r1+muldiv(i,r2-r1,_height);
if g1>g2 then g3:=g1-muldiv(i,g1-g2,_height) else g3:=g1+muldiv(i,g2-g1,_height);
if b1>b2 then b3:=b1-muldiv(i,b1-b2,_height) else b3:=b1+muldiv(i,b2-b1,_height);
brush.color:=rgb(r3,g3,b3);
rct:=rect(0,i,_width,i+1);
fillrect(rct);
end;
end;
end;
setbkmode(handle,windows.transparent);
end;
end;
用法procedure tform1.formpaint(sender: tobject);
begin
colorful(self.canvas,clskyblue,clwhite,self.width,self.height,2);
//1是橫著,2是豎著
end;
線性漸變畫刷
第一種 1.首先先繪製乙個矩形 然後在button 裡定義乙個background,再用乙個線性漸變來寫他的樣式 button height 60 width 120 margin 87,200,86.6,10.4 button.background lineargradientbrush star...
canvas畫矩形(包括漸變)
index.html內容 你的瀏覽器不支援 html5 index.js內容 function x 起點x座標 param y 起點y座標 param width 寬度 param height 高度 param linewidth 線寬 param color 邊框顏色,如果是陣列,則漸變 par...
GDI 學習之線性漸變畫刷
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!我發現使用gdi 來製作畫圖工具的調色盤極為方便 這個工作如果讓gdi來做不知要寫多少 下面我們學習一下gdi 的線性漸變畫刷 lineargradientbrush類的用法,具體 如下 cpp view plain copy print?cdc ...