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