明輝手游網(wǎng)中心:是一個免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

VB隨機(jī)圖像的魅力

[摘要]VB提供了相當(dāng)強(qiáng)的文字輸出和繪圖功能, 可以在窗口或圖形框中利用各種命令顯示字體或繪制各種圖形。靈活使用這些命令,不僅可以完成許多特殊的功能, 而且可以為Windows的程序界面增加許多活力。下面用...
VB提供了相當(dāng)強(qiáng)的文字輸出和繪圖功能, 可以在窗口或圖形框中利用各種命令顯示字體或繪制各種圖形。靈活使用這些命令,不僅可以完成許多特殊的功能, 而且可以為Windows的程序界面增加許多活力。下面用簡單的例子演示VB中隨機(jī)動畫的風(fēng)采。

  (一)、隨機(jī)文字動畫
  在VB中可利用Print命令進(jìn)行字符串的顯示工作,此命令一般只在當(dāng)前位置顯示字符串, 但具體操作時可通過CurrentX和CurrentY 控制字符串顯示位置,通過FontSize控制字體的尺寸, 通過ForeColor和BackColor控制字符的前景色和背景色。 如果把上述的各項(xiàng)屬性值均采用RND 進(jìn)行隨機(jī)產(chǎn)生, 即會形成隨機(jī)字符顯示效果。比如在一個圖形框中顯示一些新年賀辭, 同時播放美妙的音樂, 那將是一份極好的新年禮物。需要注意一點(diǎn),由于字體互相覆蓋,長時間顯示會使窗口顯得亂一些,所以最好按一定時間用“CLS"命令進(jìn)行窗口清除。此處說明一下顏色的控制技巧,如果使用QBColor(Rnd*15)方式定義隨機(jī)顏色,只能在16種顏色中隨機(jī)產(chǎn)生, 而采用RGB(Rnd*256,Rnd*256,Rnd*256)方式,則可以產(chǎn)生256*256*256種不同的顏色。具體操作方式請見文后Command1-Click事件中的代碼。
  (二)、立體圖形隨機(jī)動畫
  雖然直接利用繪圖語句即可以實(shí)現(xiàn)簡單的動畫, 但如果通過這些命令繪制成一定的立體圖形, 并實(shí)行隨機(jī)動畫操作, 那將更具有特殊的藝術(shù)效果。比如下面兩行簡單的命令將畫出一個具有強(qiáng)烈立體感效果的三角錐體,其中(M,N)為錐體的頂端坐標(biāo):

  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)

  如果把屏幕的底色置為暗黃色, 在此窗口內(nèi)的隨機(jī)位置畫出大小不一的三角錐, 就像在黃色的沙漠上建起了無數(shù)的金字塔, 具有一種特殊的情趣。具體操作方法請見文后程序中的Command2-Click事件中的代碼。

  (三)、演示程序編制過程

  文后是一個完成上述隨機(jī)動畫的完整演示程序,需要在From1 窗體中安放一個圖形框Picture1及三個命令按鈕Command1-3, 然后把下面的代碼填入相應(yīng)的事件處。運(yùn)行此程序之后, 按下按鈕1 ,則在圖形框中進(jìn)行隨機(jī)文字顯示。按下按鈕 2,則在圖形框中隨機(jī)顯示三角錐體。按下按鈕3,則退出程序。此程序在Windows 95系統(tǒng)上VB5.0 環(huán)境下調(diào)試通過。

  ′程序準(zhǔn)備:
  Private Sub Form-Load()
  Command1.Caption = ″隨機(jī)文字″
  Command2.Caption = ″立體圖形″
  Command3.Caption = ″退出″
  Form1.ScaleMode = 1
  Picture1.ScaleMode = 1
  End Sub
  ′隨機(jī)文字動畫
  Private Sub Command1-Click()
  Picture1.Cls
  Do
  nn = Int(45 * Rnd)
  If nn > 0 Then
  Picture1.FontSize = nn
  End If
  Picture1.CurrentX = Rnd * Picture1.ScaleWidth - 1000
  Picture1.CurrentY = Rnd * Picture1.ScaleHeight
  Picture1.ForeColor = RGB(Rnd * 256, Rnd * 256, Rnd * 256)
  Picture1.Print ″隨機(jī) OK!″
  n = n + 1
  If n > 50 Then
  n = 0
  Picture1.BackColor = QBColor(Rnd * 15)
  End If
  DoEvents
  Loop
  End Sub
  ′立體隨機(jī)動畫
  Private Sub Command2-Click()
  Dim m, n
  Picture1.DrawWidth = 1
  Picture1.BackColor = RGB(210, 150, 0)
  Picture1.Cls
  Do
  m = Rnd * Picture1.ScaleWidth
  n = Rnd * Picture1.ScaleHeight - 500
  For i = 0 To Rnd * 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)
  Next i
  DoEvents
  Loop
  End Sub
  ′結(jié)束程序
  Private Sub Command3-Click()
  End
  End Sub