VB隨機(jī)圖像的魅力
發(fā)表時間:2023-08-08 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]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