熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

Delphi中的圖形顯示技巧[3]

2013-11-23 17:44:51  來源: Delphi編程 

  雨滴效果

  原理將暫存圖形的最後一條掃描線依序搬移到可視位圖的第一條到最後一條掃描線讓此條掃描線在屏幕上留下它的軌跡接著再把暫存圖形的倒數第二條掃描線依序搬移到可視位圖的第一條到倒數第二條掃描線其余的掃描線依此類推

  程序算法
  procedure TFormButtonClick(Sender: TObject);
  var
  newbmp:TBitmap;
  ijbmpheightbmpwidth:integer;
  begin
  newbmp:= TBitmapCreate;
  newbmpWidth:=imageWidth;
  newbmpHeight:=imageHeight;
  bmpheight:=imageHeight;
  bmpwidth:=imageWidth;
  for i:=bmpheight downto do
  for j:= to i do
  begin
  newbmpCanvasCopyRect(Rect(jbmpwidthj)
  imageCanvas
  Rect(ibmpwidthi));
  formCanvasDraw(newbmp);
  end;
  newbmpfree;
  end;

  百葉窗效果

  原理將放在暫存圖形的數據分成若干組然後依次從第一組到最後一組搬移第一次每組各搬移第一條掃描線到可視位圖的相應位置第二次搬移第二條掃描線接著搬移第三條第四條掃描線

  程序算法
  procedure TFormButtonClick(Sender: TObject);
  var
  newbmp:TBitmap;
  ijbmpheightbmpwidth:integer;
  xgroupxcount:integer;
  begin
  newbmp:= TBitmapCreate;
  newbmpWidth:=imageWidth;
  newbmpHeight:=imageHeight;
  bmpheight:=imageHeight;
  bmpwidth:=imageWidth;
  xgroup:=;
  xcount:=bmpheight div xgroup;
  for i:= to xcount do
  for j:= to xgroup do
  begin
  newbmpCanvasCopyRect(Rect
  (xcount*j+ibmpwidthxcount*j+i)
  imageCanvas
  Rect(xcount*j+ibmpwidthxcount*j+i));
  formCanvasDraw(newbmp);
  end;
  newbmpFree;
  end;

  積木效果

  原理是雨滴效果的一種變化不同之處在於積木效果每次搬移的是一塊圖形而不只是一根掃描線

  程序算法
  procedure TFormButtonClick(Sender: TObject);
  var
  newbmp:TBitmap;
  ijbmpheightbmpwidth:integer;
  begin
  newbmp:= TBitmapCreate;
  newbmpWidth:=imageWidth;
  newbmpHeight:=imageHeight;
  bmpheight:=imageHeight;
  bmpwidth:=imageWidth;
  i:=bmpheight;
  while i> do
  begin
  for j:= to i do
  begin
  newbmpCanvasCopyRect(Rect(jbmpwidthj)
  imageCanvas
  Rect(ibmpwidthi));
  formCanvasDraw(newbmp);
  end;
  i:=i;
  end;
  newbmpfree;
  end;

  結束語
  上述圖形顯示效果均已上機通過軟件環境Delphi 硬件環境Pentium M兼容機使用效果很好

[]  []  []  


From:http://tw.wingwit.com/Article/program/Delphi/201311/25001.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.