程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> VB隨機圖像的魅力

VB隨機圖像的魅力

編輯:VB綜合教程
VB提供了相當強的文字輸出和繪圖功能,可以在窗口或圖形框中利用各種命令顯示字體或繪制各種圖形。靈活使用這些命令,不僅可以完成許多特殊的功能,而且可以為Windows的程序界面增加許多活力。下面用簡單的例子演示VB中隨機動畫的風采。
  
  (一)、隨機文字動畫
  在VB中可利用Print命令進行字符串的顯示工作,此命令一般只在當前位置顯示字符串,但具體操作時可通過CurrentX和CurrentY控制字符串顯示位置,通過FontSize控制字體的尺寸,通過ForeColor和BackColor控制字符的前景色和背景色。如果把上述的各項屬性值均采用RND進行隨機產生,即會形成隨機字符顯示效果。比如在一個圖形框中顯示一些新年賀辭,同時播放美妙的音樂,那將是一份極好的新年禮物。需要注意一點,由於字體互相覆蓋,長時間顯示會使窗口顯得亂一些,所以最好按一定時間用“CLS"命令進行窗口清除。此處說明一下顏色的控制技巧,如果使用QBColor(Rnd*15)方式定義隨機顏色,只能在16種顏色中隨機產生,而采用RGB(Rnd*256,Rnd*256,Rnd*256)方式,則可以產生256*256*256種不同的顏色。具體操作方式請見文後Command1-Click事件中的代碼。
  (二)、立體圖形隨機動畫
  雖然直接利用繪圖語句即可以實現簡單的動畫,但如果通過這些命令繪制成一定的立體圖形,並實行隨機動畫操作,那將更具有特殊的藝術效果。比如下面兩行簡單的命令將畫出一個具有強烈立體感效果的三角錐體,其中(M,N)為錐體的頂端坐標:
  
  Picture1.Line(m,n+2.5*i)-(m+i/2,n+2*i),RGB(180,180,180)
  
  Picture1.Line(m,n+2.5*i)-(m-i/2,n+2*i),RGB(80,80,80)
  
  如果把屏幕的底色置為暗黃色,在此窗口內的隨機位置畫出大小不一的三角錐,就像在黃色的沙漠上建起了無數的金字塔,具有一種特殊的情趣。具體操作方法請見文後程序中的Command2-Click事件中的代碼。
  
  (三)、演示程序編制過程
  
  文後是一個完成上述隨機動畫的完整演示程序,需要在From1窗體中安放一個圖形框Picture1及三個命令按鈕Command1-3,然後把下面的代碼填入相應的事件處。運行此程序之後,按下按鈕1,則在圖形框中進行隨機文字顯示。按下按鈕2,則在圖形框中隨機顯示三角錐體。按下按鈕3,則退出程序。此程序在Windows95系統上VB5.0環境下調試通過。
  
  ′程序准備:
  PrivateSubForm-Load()
  Command1.Caption=″隨機文字″
  Command2.Caption=″立體圖形″
  Command3.Caption=″退出″
  Form1.ScaleMode=1
  Picture1.ScaleMode=1
  EndSub
  ′隨機文字動畫
  PrivateSubCommand1-Click()
  Picture1.Cls
  Do
  nn=Int(45*Rnd)
  Ifnn>0Then
  Picture1.FontSize=nn
  EndIf
  Picture1.CurrentX=Rnd*Picture1.ScaleWidth-1000
  Picture1.CurrentY=Rnd*Picture1.ScaleHeight
  Picture1.ForeColor=RGB(Rnd*256,Rnd*256,Rnd*256)
  Picture1.Print″隨機OK!″
  n=n+1
  Ifn>50Then
  n=0
  Picture1.BackColor=QBColor(Rnd*15)
  EndIf
  DoEvents
  Loop
  EndSub
  ′立體隨機動畫
  PrivateSubCommand2-Click()
  Dimm,n
  Picture1.DrawWidth=1
  Picture1.BackColor=RGB(210,150,0)
  Picture1.Cls
  Do
  m=Rnd*Picture1.ScaleWidth
  n=Rnd*Picture1.ScaleHeight-500
  Fori=0ToRnd*800
  Picture1.Line(m,n+2.5*i)-(m+i/2,n+2*i),RGB(180,180,180)
  Picture1.Line(m,n+2.5*i)-(m-i/2,n+2*i),RGB(80,80,80)
  Nexti
  DoEvents
  Loop
  EndSub
  ′結束程序
  PrivateSubCommand3-Click()
  End
  EndSub->

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