VB中隨機圖像的魅力_第1頁
VB中隨機圖像的魅力_第2頁
VB中隨機圖像的魅力_第3頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、- 在VB中提供了相當強的繪圖功能, 可以在窗口或圖形框中利用各種命令繪制各種圖形, 靈活使用這些繪圖命令不僅可以完成許多特殊的功能, 而且可以為WINDOWS 的程序界面增加許多活力, 特別是那些巧妙的隨機圖像則更具有特殊的魅力, 下面僅以三種隨機動畫為例, 演示VB中隨機動畫圖像的風采。 一、隨機簡單圖形動畫 - 完成此工作主要的直接使用VB中的作圖命令, 比如畫點函數PSet(X,Y,COLOR, 其中X Y為圖形坐標系統的坐標, COLOR表示顏色值,可用QBColor(x或RGB(r,g,b等形式表示, 同時可以控制畫點的半徑長度,即通過設置Drawwidth 屬性, 當半徑大于1時

2、實際上此命令是畫一個實心圓,當然也可以利用Circle命令直接繪制圓形。VB中還提供了隨機數產生手段,即RND內部函數, 它可以產生0到1之間的隨機數, 利用此函數可以隨機確定畫點的位置、點的顏色、點的半徑等,這樣即可以實現在固定區域內進行隨機畫圓操作, 其中隨機位置的確定必須根據作圖區域進行確定, 具體可用 ScaleWidth及Scaleheight屬性進行確定。為了實現連續動畫效果,可利用時間控件或"DoEvents" 命令實現后臺處理, 具體請見文后的Command1_Click事件中的程序代碼。如果把程序改為隨機畫矩形或空心圓,或者靈活控制畫圓的半徑, 則會產生另

3、外的藝術效果, 比如在一片黑色的屏幕上畫出隨機的小點, 就象夜空中的點點繁星。 二、隨機文字動畫 - 在VB中可利用"Print"命令進行字符串的顯示工作,此命令一般只在當前位置顯示字符串, 但具體操作時可通過 CurrentX和CurrentY 控制字符串顯示位置,通過FontSize 控制字體的尺寸, 通過ForeColor和BackColor控制字符的前景色和背景色, 如果把上述的各項屬性值均采用RND 進行隨機產生, 即會形成隨機字符顯示效果, 比如在一個圖形框中顯示一些新年賀辭, 同時播放美妙的音樂, 那將是一份極好的新年禮物。需要注意一點,由于字體互相覆蓋,長時

4、間顯示會使窗口顯得亂一些,所以最好按一定時間用 "CLS"命令進行窗口清除。此處說明一下顏色的控制技巧, 如果使用QBColor(Rnd*15方式定義隨機顏色,只能在16種顏色中隨機產生, 而采用RGB(Rnd*256,Rnd*256,Rnd*256 方式則可以產生256*256*256種不同的顏色,但具體的顏色特性受當前WINDOWS 屏幕模式的限制。具體操作方式請見文后Command2_Click事件中的代碼。 三、立體圖形隨機動畫 - 上面只是直接利用繪圖語句進行簡單的動畫, 如果通過這些命令繪制成一定的立體圖形, 并實行隨機動畫操作, 那將更具有特殊的藝術效果。比如

5、下面兩行簡單的命令將畫出一個具有強烈立體感效果的三角錐體, 其中(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 - 如果把屏幕的底色置為暗黃色, 在此窗口內的隨機位置畫出大小不一的三角錐, 就象在黃色的沙漠上建起了無數的金字塔, 具有一種特殊的情趣。具體操作方法請見文后程序中的Command3_Click事件中的代碼。 四、隨機顯示圖像 - 在VB中不僅提供了完善的做圖方法, 而且在繪圖方法中還可以靈活

6、的處理圖像文件, 其中提供了一個方便的圖像復制命令即: PaintPicture, 此命令的功能與API 函數 BitBlt類似, 但由于不用做API函數說明,所以更有它的方便之處, 語法格式: PaintPicture Pic,destX,destY, destWidth,destHeight, scrX,scrY,scrWidth,scrHeight 其中Pic:為圖片對象, 如圖形框Picture等; destX,destY:目標圖像位置; destWidth,destHeight:目標圖像尺寸; scrX,scrY:原圖像的裁剪坐標; scrWidth,scrHeight:原圖像的裁剪

7、尺寸; - 從以上可以看出,目標圖像的位置可以隨機改變,不僅如此,通過改變destWidth與destHeight值,還可以改變復制后的圖像的尺寸, 實現放大或縮小圖像顯示, 甚至可以置這兩個屬性為負值, 這樣可使目標圖像在水平方向翻轉,實現特殊效果的圖像顯示, 靈活運用RND 隨機函數確定上述各個參數, 可取得理想的隨機圖像顯示效果。具體操作方法請見文后程序Command4_Click事件中的代碼。 - 文后是一個完成上述隨機動畫的完整演示程序,需要在From1 窗體中安放兩個圖形框Picture(1-2及四個命令按鈕Command1-5,然后把下面的代碼填入相應的事件處,運行此程序之后,按

8、下按鈕1則在圖形框中進行隨機畫圓演示, 按下按鈕2 則在圖形框中進行隨機文字顯示, 按下按鈕 3 則在圖形框中隨機顯示三角錐體, 按下按鈕4 則進行隨機圖像顯示, 按下按鈕5 則退出程序。此程序在WINDOWS 95 系統下VB4.0環境下調試通過。 '程序準備 Private Sub Form_Load( Command1.Caption = "隨機畫圓" Command2.Caption = "隨機文字" Command3.Caption = "立體圖形" Command4.Caption = "隨機圖像&quo

9、t; Command5.Caption = "退出" Form1.ScaleMode = 1 Picture1.ScaleMode = 1 Picture2.Picture = LoadPicture ("d:windows256color.bmp" End Sub '隨機畫圓動畫 Private Sub Command1_Click( Dim XPos, YPos Picture1.Cls Do nn = Int(100 * Rnd If nn > 0 Then Picture1.DrawWidth = nn End If XPos =

10、Rnd * Picture1.ScaleWidth YPos = Rnd * Picture1.ScaleHeight Picture1.PSet (XPos, YPos, RGB (Rnd * 256, Rnd * 256, Rnd * 256 DoEvents Loop End Sub '隨機文字動畫 Private Sub Command2_Click( Picture1.Cls Do nn = Int(45 * Rnd If nn > 0 Then Picture1.FontSize = nn End If Picture1.CurrentX = Rnd * Pictur

11、e1.ScaleWidth - 1000 Picture1.CurrentY = Rnd * Picture1.ScaleHeight Picture1.ForeColor = RGB(Rnd * 256, Rnd * 256, Rnd * 256 Picture1.Print "隨機 OK!" n = n + 1 If n > 50 Then n = 0 Picture1.BackColor = QBColor(Rnd * 15 End If DoEvents Loop End Sub '立體隨機動畫 Private Sub Command3_Click(

12、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 '隨機圖像顯示 Private Sub Command4_Click( Do xx = Rnd * Pi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論