摘要:鑒于繪圖軟件實(shí)現(xiàn)的困難,本文提出一種繪圖軟件的實(shí)現(xiàn)方法,并經(jīng)實(shí)踐檢驗(yàn),結(jié)果證明本文提出的方法可行、有效。
關(guān)鍵詞:繪圖,VisualBasicPictureBox
Abstract:Inviewofthedifficultiesofmappingsoftware,thispaperpresentsamethodofmappingsoftware,andbythepracticeoftesting,resultsshowthattheproposedmethodisfeasibleandeffective.
Keyword:mappingVisualBasicPictureBox
0引言
在各行各業(yè)中,繪圖軟件受到了廣泛的應(yīng)用,并閃爍著美麗的光環(huán),然而其實(shí)現(xiàn)卻比較復(fù)雜,因而在實(shí)現(xiàn)中受到了限制。
VisualBasic是美國(guó)Microsoft公司出產(chǎn)的包含協(xié)助開(kāi)發(fā)環(huán)境的事件驅(qū)動(dòng)編程語(yǔ)言,其簡(jiǎn)單,實(shí)用,在傳統(tǒng)編程、網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)、多媒體等多個(gè)方面都有其廣泛的應(yīng)用并受到相當(dāng)?shù)闹匾暋?BR> 既然VisualBasic如此優(yōu)秀,那么利用VisualBasic實(shí)現(xiàn)繪圖軟件是否可行呢?如果可行的話又如何實(shí)現(xiàn)呢?
1. 實(shí)現(xiàn)的基礎(chǔ)
要利用VisualBasic實(shí)現(xiàn)繪圖軟件,主要需要利用VisualBasic的PictureBox控件、通用對(duì)話框控件、順序語(yǔ)句、選擇語(yǔ)句和循環(huán)語(yǔ)句等。
PictureBox控件是VisualBasic的一個(gè)非;镜目丶,其主要用途是顯示來(lái)自位圖、圖標(biāo)、元文件,以及來(lái)自增強(qiáng)的元文件、JPEG文件或者GIF文件的圖形。當(dāng)控件不足以顯示整幅圖像的時(shí)候該控件可以裁剪圖像以適應(yīng)控件的大小,并且可以作為容器以容納其他控件。
PictureBox控件的主要屬性有AutoSize、BackColor、Picture、ScaleMode、ScaleWidth、ScaleHeight,其中Autosize屬性可以決定該控件是否自動(dòng)調(diào)整大小以顯示所有內(nèi)容,BackColor屬性返回對(duì)象中文本和圖形的背景色,Picture屬性返回/設(shè)置控件中顯示的圖形,可以通過(guò)在設(shè)計(jì)中直接選擇圖形文件或者利用LoadPicture()函數(shù)裝入圖形。
PictureBox控件的主要事件有MouseDown、MouseMove和MoveUp事件,三事件分別為鼠標(biāo)按下、鼠標(biāo)移動(dòng)和鼠標(biāo)抬起三種不同的事件,均有Button、X、Y三個(gè)參數(shù),分別對(duì)應(yīng)于當(dāng)時(shí)所使用的鍵(鼠標(biāo)左鍵還是右鍵),當(dāng)時(shí)鼠標(biāo)指針?biāo)幍臋M坐標(biāo)和縱坐標(biāo)。
PictureBox控件的主要方法有Line、Circle和Pset三種,Line方法主要用于繪制直線或者矩形,可以選擇使用B參數(shù)和F參數(shù),如果加上B參數(shù)則表示繪制矩形,F(xiàn)參數(shù)則表示用矩形的顏色來(lái)填充矩形。Circle方法用于繪制圓、橢圓、圓弧和扇形,該方法格式為:[對(duì)象.]circle[step](x,y)半徑[,[顏色][,[起始點(diǎn)][,終止點(diǎn)][,長(zhǎng)短軸比率]]],該方法中可以利用Step參數(shù)表示正在采用當(dāng)前作圖位置的相對(duì)值,通過(guò)長(zhǎng)短軸比率控制是橢圓還是圓。Pset方法用于繪制點(diǎn)。
PictureBox控件使用的坐標(biāo)系分為VB坐標(biāo)系統(tǒng)和用戶自定義坐標(biāo)系統(tǒng)兩種。在VisualBasic坐標(biāo)系統(tǒng)中,默認(rèn)的坐標(biāo)原點(diǎn)是對(duì)象的左上角,橫向向左為x軸的正方向,縱向向下是y軸的正方向,窗體實(shí)際可以使用的高度和寬度使用ScaleHeight和ScaleWidth屬性確定。對(duì)于PictureBox控件的自定義坐標(biāo)系統(tǒng)來(lái)說(shuō),往往當(dāng)窗體所繪制的圖產(chǎn)生與
數(shù)學(xué)坐標(biāo)系相同效果的時(shí)候使用,可以使用Scale方法來(lái)建立用戶坐標(biāo)系,其語(yǔ)法如下:[對(duì)象.]Scale[(xLeft,yTop)-(xRight,yButton)];其中,使用PictureBox控件創(chuàng)建用戶坐標(biāo)系統(tǒng)的時(shí)候需要指定相應(yīng)控件,否則默認(rèn)為窗體,(xLeft,yTop)代表的是對(duì)象左上角所處的坐標(biāo)值,(xRight,yButton)則代表對(duì)象右下角所處的坐標(biāo)值,此外ScaleMode屬性確定了坐標(biāo)系統(tǒng)所使用的度量單位,默認(rèn)為TWIP。
通用對(duì)話框控件通?梢员挥脕(lái)在窗體上實(shí)現(xiàn)六種標(biāo)準(zhǔn)對(duì)話框,分別是打開(kāi)、另存為、顏色、字體、打印機(jī)和幫助。在繪圖軟件的使用中主要使用打開(kāi)標(biāo)準(zhǔn)對(duì)話框和另存為標(biāo)準(zhǔn)對(duì)話框。
順序語(yǔ)句主要包括賦值語(yǔ)句、Msgbox語(yǔ)句和InputBox語(yǔ)句等。賦值語(yǔ)句用于實(shí)現(xiàn)值的賦予、累加和計(jì)數(shù)等;Msgbox語(yǔ)句主要作用是打開(kāi)一個(gè)消息框,等待用戶選擇一個(gè)按鈕;InputBox函數(shù)的作用是打開(kāi)一個(gè)對(duì)話框,等待用戶輸入內(nèi)容,可以用于人機(jī)交互。
選擇語(yǔ)句主要包括IF語(yǔ)句、IIF語(yǔ)句和Selectcase語(yǔ)句,主要用于實(shí)現(xiàn)選擇結(jié)構(gòu)。
循環(huán)語(yǔ)句主要包括For循環(huán)語(yǔ)句和Do…Loop循環(huán)語(yǔ)句,主要用于按照規(guī)定的條件反復(fù)地執(zhí)行某些操作。
2. 綜合應(yīng)用
在繪圖軟件實(shí)現(xiàn)的過(guò)程中,主要工作區(qū)域是由PictureBox控件組成的,因此各種操作也是圍繞PictureBox控件而進(jìn)行的。
圖形與圖像的繪制需要考慮繪圖軟件的輸入方法,這首先主要涉及到輸入的圖形問(wèn)題,在VisualBasic的多個(gè)控件中有單選按鈕控件,選擇一組中的一個(gè)單選按鈕控件可以保證同時(shí)只選擇一種情況,利用該控件的這種特性便可以在多種圖形中選擇其中的一種來(lái)進(jìn)行繪制了。選擇了需要輸入的類型之后就需要考慮什么時(shí)候輸入的問(wèn)題,由于VisualBasic所使用的命令都是需要參數(shù)的因此往往需要在獲得了全部信息之后才能使用命令來(lái)進(jìn)行繪制,使用鼠標(biāo)繪制的話往往會(huì)在PictureBox控件的MouseDown事件中發(fā)生。
圖形與圖像的繪制還需要考慮輸入的坐標(biāo)問(wèn)題,這里主要有兩種方法,其一是通過(guò)鼠標(biāo)單擊來(lái)確定,其二則通過(guò)直接輸入坐標(biāo)來(lái)實(shí)現(xiàn)。在第一種實(shí)現(xiàn)方法中,直線、矩形等需要起始點(diǎn)和終止點(diǎn)兩個(gè)點(diǎn)的坐標(biāo)參數(shù),那么如何確定兩個(gè)輸入點(diǎn)的先后并且與其他圖形相互區(qū)別呢?在這里可以使用VisualBasic中的選擇語(yǔ)句,利用輸入的次數(shù)的奇偶數(shù)不同而分辨起始點(diǎn)與終止點(diǎn),同時(shí)可以在狀態(tài)欄顯示當(dāng)前所獲得的參數(shù)是哪一組參數(shù)和參數(shù)的值;對(duì)于第二種方法來(lái)說(shuō),可以利用文本框與命令按鈕的搭配來(lái)實(shí)現(xiàn),其中文本框用于輸入坐標(biāo),而命令按鈕則用來(lái)執(zhí)行相應(yīng)的操作。
填充問(wèn)題也是繪圖軟件的一個(gè)大問(wèn)題,在繪圖軟件的使用過(guò)程中,填充通常有兩種方式,其一是在繪制某個(gè)圖形的過(guò)程中直接繪制已經(jīng)填充的圖形,其二則是在繪制之后再使用填充來(lái)實(shí)現(xiàn)填充的效果。對(duì)于第一種方式而言,我們可以在繪制的過(guò)程中直接利用參數(shù)來(lái)進(jìn)行繪制;對(duì)于第二種方式而言則需要考慮利用覆蓋的方法,首先確定對(duì)哪一個(gè)圖形來(lái)進(jìn)行填充,然后在該圖形的上面重新繪制一個(gè)外型一模一樣但卻已經(jīng)經(jīng)過(guò)了填充的圖形,這樣一來(lái),“填充”便完成了。如果需要對(duì)整副圖像的背景進(jìn)行填充則可以直接使用BackColor屬性來(lái)進(jìn)行操作。
圖像大小的改變和只取圖像中的一部分對(duì)于繪圖軟件來(lái)說(shuō)也是至關(guān)重要的,對(duì)于這兩者而言比較有難度的主要是圖像的重構(gòu)的時(shí)候需要使圖像的大小與PictureBox控件的大小相互適應(yīng)。要實(shí)現(xiàn)這個(gè)目的主要有兩種方法,第一個(gè)方法通常是直接利用Picture屬性,其二則是根據(jù)Point方法來(lái)依次獲得各個(gè)像素點(diǎn)的紅色亮度值、綠色亮度值和藍(lán)色亮度值,然后再根據(jù)紅色亮度值、綠色亮度值和藍(lán)色亮度值來(lái)重新進(jìn)行繪制,第一種方法通常用于整副圖像的使用,第二種方法則通常用于對(duì)圖像中部分區(qū)域進(jìn)行操作。
對(duì)于繪圖文件的打開(kāi)、保存操作而言,主要使用通用對(duì)話框的打開(kāi)對(duì)話框和另存為對(duì)話框,對(duì)于新建文件則可以直接利用PictureBox控件的Cls方法。該方法清除通過(guò)畫圖方法畫出的圖形或者用Print語(yǔ)句打印的信息并把光標(biāo)移動(dòng)到對(duì)象的左上角(0,0),cls方法一般的格式為:對(duì)象名,Cls。
3. 驗(yàn)證與結(jié)論
為了驗(yàn)證本文所提出的方法是否可行和有效,筆者利用VisualBasic6.0根據(jù)本文提出的方法編制了繪圖軟件,所編制的繪圖軟件使用便利并可以實(shí)現(xiàn)多種功能。實(shí)驗(yàn)結(jié)果證明本文提出的方法可行、有效。
參考
文獻(xiàn):
羅朝盛,VisualBasic程序設(shè)計(jì)教程,人民郵電出版社,2005
劉新民,VisualBasic6.0程序設(shè)計(jì),清華大學(xué)出版社,2004
轉(zhuǎn)載請(qǐng)注明來(lái)自:http://www.jinnzone.com/ruanjiankaifalw/4624.html