李 沫 李 楊 孟 壇
[摘要]Visual Basic在實現(xiàn)圖形動畫方面,有其獨到之處,簡述使用V B專業(yè)版實現(xiàn)圖像藝術清屏的方法,為進一步理解編程思想,更好的掌握編程原理,學好V B程序設計提供參考。
[關鍵詞]圖像藝術清屏 循環(huán)控制 動畫按鈕 BMP圖片
中圖分類號:TP3文獻標識碼:A文章編號:1671-7597(2009)0420056-01
在教學中,學生總是對移動的圖[摘要]Visual Basic在實現(xiàn)圖形動畫方面,有其獨到之處,簡述使用V B專業(yè)版實現(xiàn)圖像藝術清屏的方法,為進一步理解編程思想,更好的掌握編程原理,學好V B程序設計提供參考。
[關鍵詞]圖像藝術清屏循環(huán)控制動畫按鈕BMP圖片
中圖分類號:TP3文獻標識碼:A文章編號:1671-7597(2009)0420056-01形畫面有很強的好奇心,教師可
以在教學中穿插動畫教學,充分調動學生學習興趣,下面就談談使用Visual Basic專業(yè)版實現(xiàn)藝術清屏的方法。
一、準備工作
獲取若干圖形尺寸大小相同的BMP圖形文件。推薦以下兩種方法:
1.利用PHOTOSHOP或畫筆裁剪出若干圖形尺寸相同的BMP圖形文件存盤。
2.利用現(xiàn)有圖像文件,通過3DS生成若干圖形尺寸相同的BMP圖形文件。簡明步驟如下:(1)進入3DS中,將Render-Setup-Background文件名,設定成現(xiàn)有圖形文件名。(2)在任意視圖中,設定Render-View-Configure-文件類型256色BMP非壓縮類型、背景Recale、disk存盤,即可生成符合圖形尺寸大小的BMP圖形文件存盤。
二、設計方法
1.放置控件在窗體Form1中,建立兩個PictureBox控件:Form1.Pict
-ure1(0)和Form1.Picture1(1),設Form1.Picture1(1)在Form1.Picture1(0)之上,并使此兩個控件的位置大小完全一樣。
2.圖像藝術清屏實現(xiàn)原理。利用反復交替改變Form1盤icture1(1)的Width或Height的大小實現(xiàn)圖像的左右上下拖拽、卷起,達到圖像清屏效果??赏ㄟ^設置CommandButton的事件代碼實現(xiàn)(見CommandButton的Command1代碼)。
通過循環(huán)控制上層圖Form1.Picturc1(1)的Width或Height大?。?/p>
當其由小→大循環(huán)遞增時,形成圖像拖拽效果,當Width或Height達到實際圖像的寬度或高度,完全遮蓋住下層圖Form1.Picture1(0)時,對下層圖Form1.Picture1(0)換圖,改變Form1.Picture1(0)Picture屬性。
當其由大→小循環(huán)遞增時,形成上層圖像卷起、下層圖像拖拽的效果,當Width或Height達到0,完全露出下層圖Form1.Picture1(0)時,對上層圖Form1.Picture1(1).Picture換圖,改變Form1.Picture1(1).Picture屬性。
三、VB實現(xiàn)圖像藝術清屏程序部分關鍵代碼
其中t1-t7.bmp均為320*200*256C分辨率的BMP文件。
Private Sub Form-Load()
Form1.Caption = ″電腦藝術趣味清屏″
Form1.Picture1(0).AutoRedraw = True
Form1.Picture1(0).AutoSize = False
Form1.Picture1(1).AutoRedraw = True
Form1.Picture1(1).AutoSize = False
Form1.Picture1(0).Left = Form1.Picture1(1).Left
Form1.Picture1(0).Top = Form1.Picture1(1).Top
Form1.Picture1(0).Width = Form1.Picture1(1).Width
Form1.Picture1(0).Height = Form1.Picture1(1).Height
EndSub
Private Sub Command1_Click()
Form1.Picture1(0).Picture = LoadPicture(″e:3ds4images 1.
bmp″)
Form1.Picture1(1).Picture = LoadPicture(″e:3ds4images 3.
bmp″)
w1 = Form1.Picture1(1).Width
h1 = Form1.Picture1(1).Height
Form1.Picture1(1).Height = h1
Form1.Picture1(1).Width = 0
For i = 0 To 50
Form1.Picture1(1).Width = i * w1 / 50
Next i
Form1.Picture1(0).Picture = LoadPicture("e:3ds4images 4.b
mp")
For i = 0 To 50
Form1.Picture1(1).Width = w1 - i * w1 / 50
Next i
Form1.Picture1(1).Picture = LoadPicture(″e:3ds4images 5.b
-mp″)
Form1.Picture1(1).Width = 0
For i = 0 To 50 ′step w1/50′
Form1.Picture1(1).Width = i * w1 / 50
Next i
Picture1(0).Picture圖
Form1.Picture1(0).Picture = LoadPicture(″e:3ds4images 7.
bmp″)
Form1.Picture1(1).Height = h1
For i = 0 To 50
Form1.Picture1(1).Height = h1 - i * h1 / 50
Next i
Form1.Picture1(1).Picture = LoadPicture(″e:3ds4images 6.b
-mp″)
p″)
For i = 0 To 50
Form1.Picture1(1).Height = i * h1 / 50
Next i
End Sub
Private Sub Command2_Click()
End
End Sub
四、說明
當兩個以上256色的圖形文件同時在一屏幕顯示,由于它們分享調色板顏色資源,若它們使用的顏色截然不同,就會出現(xiàn)顏色失真現(xiàn)象。應盡量避免同時使用兩個256色的圖形文件。如果你的圖像可通過掃描獲得,你應將所有圖片一次掃描得到一個大圖像文件,再將其裁剪成各尺寸相同的小圖,這樣即可完全避免上述顏色失真現(xiàn)象。
參考文獻:
[1]譚浩強,Visual Basic 6.0中文版提高與應用,北京:電子工業(yè)出版社,1999.11:128-163.