程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi編程實現3D圖形修飾技術(3)

Delphi編程實現3D圖形修飾技術(3)

編輯:Delphi

3、中間銅柱子程序

本段程序是用來畫窗口中間的銅柱,只要給出不同的顏色RGB值就能畫出不同顏色的柱子。

procedure draw_sroll(Sender:TForm;X0,Y0,W,H,R,G,B,lw:integer);
var i,J,j1,J2,J3,m,X,Y,i1,i2:integer;
begin
 J1:=R div lw-2;
 J2:=G div lw;
 J3:=B div lw+2;
 m:=lw div 3;
 with Sender do
 begin
  for i:=0 to lw do
  begin
   i1:=i;
   i2:=i;
   if h=0 then i1:=0;
   if w=0 then i2:=0;
   if i<m then j:=m-i else j:=i-m;
   Canvas.pen.color:=rgb(R-J1*J,G-J2*J,BJ3*J);
   canvas.moveTo(i1+X0,i2+Y0);
   canvas.lineTo(i1+W+X0,i2+H+Y0);
  end;
 end;
end;

4、3D框制作子程序

本段程序是用來畫控件周圍的邊框,使該控件看起來有立體感,只要給出不同的顏色RGB值就能畫出不同顏色的邊框,ww是立體景深。

procedure draw_rect(Sender:TForm;X0,Y0,W,H,R,G,B,lw,ww,fg:integer);
 var ii,i,J,j1,J2,J3,m:integer;
 begin
  J1:=R div lw-2;
  J2:=G div lw;
  J3:=B div lw+2;
  m:=lw div 3;
  if fg=1 then{fg=0 ê.°.}
  begin
   j1:=j1 div 2+(j1+2) div 3;
   j2:=j2 div 2+(j2+2) div 3;
   j3:=j3 div 2+(j3+2) div 3;
  end;
  with Sender do
  begin
   Canvas.Brush.Style:=bsClear;
   for ii:=0 to lw do
   begin
    if fg=0 then
    begin
     i:=ii;
     if i<m then j:=m-i else j:=i-m;
    end
    else i:=lw-ii;
    j:=ii;
    Canvas.pen.color:=rgb(R-J1*J,G-J2*J,B-J3*J);
    canvas.RoundRect(i+X0-lw,i+Y0-lw,X0+W-i+lw, H+Y0-i+lw,ww,ww);
  end;
 end;
end;

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved