




免費(fèi)預(yù)覽已結(jié)束,剩余40頁可下載查看
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第10章圖形的控制與處理,主講:,10.1圖形控件,VB提供的與繪圖有關(guān)的標(biāo)準(zhǔn)控件有圖片框(PictureBox)、圖像框(Image)、直線(Line)和形狀(Shape)。Image、Line、Shape控件需要較少的系統(tǒng)資源,且包含PictureBox中可用的屬性、方法和事件子集,因此他們比PictureBox控件顯示速度快些。PictureBox和Image控件可以顯示位圖、圖標(biāo)、圖元文件中的圖形,也可處理GIF和JPEG格式的圖形文件。,10.1.1PictureBox控件,圖片框(PictureBox)控件的主要作用是在窗體的指定位置為用戶顯示圖片,也可作為其它控件的容器、顯示Print方法輸出的文本或顯示圖形方法輸出的圖形。實際顯示的圖片由Picture屬性決定。在工具箱面板中,PictureBox控件的圖標(biāo)如圖10-1所示。,圖10-1PictureBox控件的圖標(biāo),10.1.1PictureBox控件,1、主要屬性,10.1.1PictureBox控件,2、加載圖片,(1)在設(shè)計階段加載圖片文件有兩種方法:1)通過設(shè)置屬性窗口中的Picture屬性來加載圖片,步驟如下:在窗體上建立一個圖片框保持圖片框為激活的控件,在屬性窗口中找到Picture屬性,單擊該屬性條,其右側(cè)出現(xiàn)“”按鈕單擊“”按鈕,屏幕顯示“加載圖片”對話框,從相應(yīng)文件夾中找到所需加載的圖片,單擊打開,圖片即被加載2)利用剪貼板加載用繪圖或圖像處理軟件完成圖形處理,并將圖形復(fù)制到剪貼板中切換到VB,在窗體上建立圖片框,并保持為激活狀態(tài)使用“粘貼”命令,即完成圖片加載,10.1.1PictureBox控件,2、加載圖片,(2)在運(yùn)行階段通過LoadPicture函數(shù)加載圖片,格式如下:對象名.Picture=LoadPicture(圖片文件名)例如:加載圖片:Picture1.Picture=LoadPicture(C:PicMyPic1.gif),10.1.1PictureBox控件,3卸載圖片和復(fù)制圖片,(1)卸載圖片卸載圖片文件也有兩種方法:一種是在設(shè)計階段卸載,另一種是在運(yùn)行階段卸載。在設(shè)計階段設(shè)置屬性窗口中的Picture屬性為None,在運(yùn)行階段通過LoadPicture函數(shù)卸載圖片,格式如下:對象名.Picture=LoadPicture()(2)復(fù)制圖片復(fù)制圖片可以利用Picture屬性和LoadPicture()函數(shù)來完成,如:Picture1.Picture=LoadPicture(C:PicMyPic1.gif)Picture2.Picture=Picture1.Picture,10.1.1PictureBox控件,4圖形文件的保存,格式:SavePicturepicture,stringexpression說明:picture:圖片框?qū)ο蠡蚱渌麑ο蟮膒icture屬性Stringexpression:文件名,10.1.1PictureBox控件,5Paint事件,在一個對象被移動或放大之后,或在一個覆蓋該對象的窗體被移開之后,該對象部分或全部暴露時,此事件發(fā)生。如果AutoRedraw屬性被設(shè)置為True,重新繪圖會自動進(jìn)行,就不需要Paint事件。,10.1.1PictureBox控件,6常用方法,圖片框中常使用Cls方法和Print方法。【例10-1】在C:新建一個文件夾stu1,將我的文檔中的示例圖片Sunset.JPG復(fù)制到stu1文件夾下。再啟動VB,在stu1文件夾下新建一個工程文件,其布局與運(yùn)行結(jié)果如圖10-2所示。,圖10-2控件布局圖及運(yùn)行結(jié)果圖,10.1.1PictureBox控件,(1)控件選擇:兩個標(biāo)簽控件:Label1、Label2;兩個圖片框控件:Picture1、Picture2;三個命令按鈕:Cmd1、Cmd2、Cmd3(2)控件屬性設(shè)置:,10.1.1PictureBox控件,(3)代碼編寫:編寫命令按鈕Cmd1的Click事件:PrivateSubCmd1_Click()Picture1.Picture=LoadPicture(App.Path&Sunset.JPG)EndSub編寫命令按鈕Cmd2的Click事件:PrivateSubCmd2_Click()Picture2.Picture=Picture1.PictureEndSub編寫命令按鈕Cmd3的Click事件:PrivateSubCmd3_Click()Picture1.Picture=LoadPicture()Picture2.Picture=LoadPicture()EndSub說明:App.Path用于取得當(dāng)前工程文件所在的文件夾路徑,App.Path&Sunset.JPG指明了Sunset.JPG文件的物理位置。這種方法常被應(yīng)用,可提高程序的可移植性。,10.1.2Image控件,圖像框(Image)控件是一個簡單易用的顯示圖像文件的控件,其使用的系統(tǒng)資源較少而且顯示速度較快,它可以自動調(diào)整自身的大小以適應(yīng)圖像大小,或者伸縮圖像的大小使圖像適合圖像框控件的大小。Image加載圖片的方法和使用圖片的文件格式與PictureBox相同。在工具箱面板中,Image控件的圖標(biāo)如圖10-3所示。,圖10-3Image控件的圖標(biāo),10.1.2Image控件,1.主要屬性,10.1.2Image控件,2常用事件圖像框可以響應(yīng)Click和DblClick事件3Image與PictureBox的區(qū)別(1)PictureBox是“容器”控件,可以作為父控件,而Image不能作為父控件。也就是說,在PictureBox中,可以包含其它控件,作為他的子控件,如果移動PictureBox,則框中的控件也隨之一起移動,并且與PictureBox的相對位置保持不變;當(dāng)PictureBox的大小改變時,這些子控件的圖片控制的相對位置保持不變,PictureBox內(nèi)的子控件也不能移到PictureBox外。(2)PictureBox可以通過Print方法接收文本,并可接收由像素組成的圖形,而Image不能接受用Print方法輸入的信息,也不能用繪圖方法在Image上繪制圖形。(3)Image比PictureBox占用內(nèi)存少,顯示速度快。(4)Image沒有AutoSize屬性,但可以實現(xiàn)圖形縮放,10.1.2Image控件,【例10-2】在C:新建一個文件夾stu2,將我的文檔中的示例圖片Sunset.JPG復(fù)制到stu2文件夾下。再啟動VB,在stu2文件夾下新建一個工程文件,其布局與運(yùn)行結(jié)果如圖10-4所示。,圖10-4控件布局圖及運(yùn)行結(jié)果圖,10.1.2Image控件,(1)控件選擇:1個圖像框Image1;2個命令按鈕:Command1、Command2(2)控件屬性設(shè)置,10.1.2Image控件,(3)代碼編寫:編寫命令按鈕Command1的Click事件:PrivateSubCommand1_Click()IfImage1.Height1000OrImage1.Width2000ThenImage1.Height=Image1.Height-500Image1.Width=Image1.Width-500EndIfEndSub編寫窗體Form1的Load事件:PrivateSubForm_Load()Image1.Picture=LoadPicture(App.Path&Sunset.JPG)EndSub,10.1.3Line控件,Line控件可用來在窗體、框架或圖片框中創(chuàng)建各種直線。既可以在設(shè)計時通過設(shè)置直線的端點坐標(biāo)來畫直線,又可以在程序運(yùn)行時動態(tài)地改變直線的各種屬性。Line控件主要屬性是BorderWidth、BorderStyle和BorderColor屬性,以及X1、Y1和X2、Y2屬性。BorderWidth確定線的寬度,BorderStyle確定線的形狀,BorderColor確定線的顏色。X1、Y1和X2、Y2屬性控制線的兩個端點的位置。程序運(yùn)行時,不能使用Move方法移動Line控件,但是可以通過改變X1、Y1、X2、Y2屬性來移動或調(diào)整直線。在工具箱面板中,Line控件的圖標(biāo)如圖10-5所示。,圖10-5Line控件的圖標(biāo),10.1.4Shape控件,Shape控件可用來在窗體、框架或圖片框中創(chuàng)建矩形、正方形、橢圓形、圓形、圓角矩形或圓角正方形。通過設(shè)置Shape控件的Shape屬性來實現(xiàn)所需要的形狀,以控制Shape控件的外觀。在工具箱面板中,Shape控件的圖標(biāo)如圖10-6所示。,圖10-6Shape控件的圖標(biāo),10.1.4Shape控件,語法:對象名.Shape=value其中,對象名是Shape控件的Name屬性;value用來指定控件外觀的整數(shù)。其設(shè)置值如表10-5所示。,10.2坐標(biāo)系統(tǒng),對象定位使用的是容器的坐標(biāo)系,每個容器都有一個坐標(biāo)系。坐標(biāo)系由三要素構(gòu)成:坐標(biāo)原點,坐標(biāo)度量單位(刻度),坐標(biāo)軸的長度與方向。VB提供兩類坐標(biāo)系:默認(rèn)坐標(biāo)系和自定義坐標(biāo)系。默認(rèn)坐標(biāo)系中原點(0,0)定位于對象容器用戶區(qū)的左上角,X軸向右為正方向,Y軸向下為正方向。對象坐標(biāo)的度量單位由容器對象的ScaleMode屬性決定,共有8種形式的單位,默認(rèn)為Twip。用ScaleMode屬性只能改變刻度單位,不能改變坐標(biāo)原點及坐標(biāo)軸的方向。,10.2坐標(biāo)系統(tǒng),建立自定義坐標(biāo)系更簡單的做法是調(diào)用容器對象的Scale方法,語法格式為:容器對象.Scale(x1,y1)-(x2,y2)說明:容器對象是指窗體或圖片框,省略時默認(rèn)為當(dāng)前窗體。(x1,y1)為左上角的坐標(biāo),(x2,y2)為右下角的坐標(biāo)。注意兩對括號之間的“-”不代表相減。調(diào)用Scale方法后,ScaleLeft和ScaleTop屬性分別被設(shè)為x1和y1的值。ScaleWidth屬性被設(shè)為x2與x1之差,ScaleHeight屬性被設(shè)為y2與y1之差。若省略(x1,y1)-(x2,y2),則恢復(fù)默認(rèn)坐標(biāo)系統(tǒng),即以容器對象的左上角為坐標(biāo)原點。,10.3相關(guān)屬性和函數(shù),10.3.1與繪圖方法有關(guān)的屬性10.3.2與顏色有關(guān)的函數(shù),10.3.1與繪圖方法有關(guān)的屬性,1當(dāng)前坐標(biāo)CurrentX,CurrentY屬性給出窗體或圖片框或打印機(jī)在繪圖時的當(dāng)前坐標(biāo)。這兩個屬性在設(shè)計階段不能使用,使用CLS方法后,CurrentX、CurrentY屬性值為0。2線寬和線型DrawWidth屬性用來返回或設(shè)置圖形方法輸出的線寬。屬性值的單位為像素,取值范圍為132767,默認(rèn)值為1。DrawStyle屬性用來返回或設(shè)置圖形方法輸出的線型,如表10-6所示。該屬性的設(shè)置值04的效果分別與Line控件的BordeStyle屬性的15對應(yīng)。若DrawWidth屬性設(shè)置值大于1,在DrawStyle屬性被設(shè)置為14時,只能畫實線。,10.3.1與繪圖方法有關(guān)的屬性,2線寬和線型,表10-6DrawStyle設(shè)置表,10.3.1與繪圖方法有關(guān)的屬性,2線寬和線型,表10-7FillStyle設(shè)置表,10.3.1與繪圖方法有關(guān)的屬性,3填充顏色與填充樣式FillColor屬性用于為Line和Circle方法生成的矩形和圓填充顏色。FillStyle屬性用于為Line和Circle方法生成的矩形和圓指定填充的圖案,如表10-7所示。該屬性的設(shè)置值與Shape控件的FillStyle屬性相同。除Form對象外,若FillStyle屬性被設(shè)置為默認(rèn)值1(透明),則忽略FillColor屬性的設(shè)置值。,10.3.2與顏色有關(guān)的函數(shù),顏色的使用是繪圖操作中的重要環(huán)節(jié)。在程序運(yùn)行時,有四種方式可以指定顏色值:使用QBColor函數(shù);使用RGB函數(shù);使用內(nèi)部常數(shù);直接輸入顏色值。1QBColor函數(shù)QBColor函數(shù)能夠選擇早期版本的Basic所規(guī)定的16種顏色之一。其語法格式為:QBColor(Color)說明:Color是一個界于015的整型數(shù),用于指定顏色。表10-8列出了QBColor函數(shù)中Color取值所對應(yīng)的顏色。,10.3.2與顏色有關(guān)的函數(shù),表10-8QBColor函數(shù)中Color的取值與所對應(yīng)的顏色,10.3.2與顏色有關(guān)的函數(shù),2RGB函數(shù)RGB函數(shù)用來返回一個Long整數(shù),用來表示一個RGB顏色值。其語法格式為:RGB(red,green,blue)說明:red是必需的,Variant(Integer)。數(shù)值范圍從0255,表示顏色的紅色成分。green是必需的,Variant(Integer)。數(shù)值范圍從0255,表示顏色的綠色成分。blue是必需的,Variant(Integer)。數(shù)值范圍從0255,表示顏色的藍(lán)色成分。一個RGB顏色指定紅、綠、藍(lán)三原色的成分,生成一個用于顯示的特定的顏色。傳給RGB的任何參數(shù)的值,如果超過255,會被當(dāng)做255。表10-9列出了常見的標(biāo)準(zhǔn)顏色RGB的值。,10.3.2與顏色有關(guān)的函數(shù),2RGB函數(shù),表10-9常見的標(biāo)準(zhǔn)顏色RGB的值,10.4圖形方法,10.4.1Line方法10.4.2Pset方法10.4.3Circle方法10.4.4PaintPicture方法,10.4.1Line方法,Line方法用于畫直線或矩形,其語法格式如下:對象.LineStep(x1,y1)-Step(x2,y2),Color,BF說明:(1)對象:可以是窗體或圖片框,若省略則默認(rèn)為當(dāng)前窗體。(2)(x1,y1):線段的起點坐標(biāo)或矩形的左上角坐標(biāo)。(3)(x2,y2):線段的終點坐標(biāo)或矩形的右下角坐標(biāo)。(4)Step:表示采用當(dāng)前作圖位置的相對值。(5)Color:線段或矩形邊線的顏色。若省略,則使用對象的ForeColor屬性值。(6)B:表示畫矩形。(7)F:表示用畫矩形的顏色來填充矩形,F(xiàn)必須與關(guān)鍵字B一起使用。如果只用B不用F,則矩形的填充由對象當(dāng)前的FillColor和FillStyle屬性決定。畫直線時,省略BF參數(shù);畫矩形時,參數(shù)B為空心矩形,BF為實心矩形。,10.4.1Line方法,【例10-3】使用Line方法畫出如圖10-7所示的三角形。首先將窗體的AutoRedraw屬性設(shè)置為True。然后編寫代碼如下:PrivateSubForm_Load()Line(100,100)-Step(0,500)終點采用相對坐標(biāo)Line-Step(500,0)以上次畫線的終點為本次畫線起點Line-(100,100)返回最初的起點EndSub,圖10-7使用Line方法繪制的三角形,10.4.1Line方法,【例10-4】用Line方法在窗體上繪制如圖10-8所示的同心矩形,每當(dāng)單擊窗體時,矩形的顏色隨機(jī)變化。編寫代碼如下:PrivateSubForm_Click()DimCX,CY,F,F1,F2,i聲明變量CX=ScaleWidth/2水平中點CY=ScaleHeight/2垂直中點DrawWidth=10設(shè)置線寬Fori=50To0Step-4從外向內(nèi)畫矩形F=i/50坐標(biāo)偏移量系數(shù)。F1=1-F:F2=1+F計算矩形左上角和右下角坐標(biāo)偏移量系數(shù)。ForeColor=QBColor(Int(Rnd*16)設(shè)置前景色為隨機(jī)色Line(CX*F1,CY*F1)-(CX*F2,CY*F2),BF使用參數(shù)B畫矩形,F參數(shù)填充顏色NextiEndSub,圖10-8使用Line方法繪制同心矩形,10.4.2Pset方法,Pset方法用于在窗體、圖片框或打印機(jī)指定位置上畫點,利用Pset方法可以畫任意曲線。其語法格式如下:對象.PsetStep(x,y),Color說明:(1)參數(shù)(x,y):必需的。x和y是單精度浮點數(shù),即所畫點的水平坐標(biāo)(x軸)和垂直坐標(biāo)(y軸)。(2)Step:可選,表示采用當(dāng)前作圖位置的相對值。(3)Color:可選,長整型數(shù),為該點指定RGB顏色??捎肦GB函數(shù)或QBColor函數(shù)指定顏色。如果省略Color,則使用當(dāng)前的ForeColor屬性值。如果使用背景顏色,則可清除某個位置上的點。,10.4.2Pset方法,【例10-5】繪制正弦曲線和余弦曲線。程序運(yùn)行結(jié)果如圖10-9所示。,圖10-9繪制正弦曲線和余弦曲線,10.4.2Pset方法,本例使用PictureBox控件的Line方法繪制坐標(biāo)軸,使用其Pset方法描繪曲線。在Form_Load過程中的語句Picture1.Scale(-360,2)-(360,-2),建立了新坐標(biāo)系:左上角坐標(biāo)是(-360,2),右下角坐標(biāo)是(360,-2);坐標(biāo)原點位于矩形的中心,X軸的正向水平向右,Y軸的正向垂直向上。窗體中除了圖片框Picture1外,還需要四個命令按鈕:繪制正弦曲線的按鈕command1,繪制余弦曲線的按鈕command2,清除圖片框中的內(nèi)容的按鈕command3,繪制坐標(biāo)軸的按鈕command4。程序代碼如下:,10.4.2Pset方法,DimStartAngleAsSingle存起始角DimEndAngleAsSingle存終止角DimiAsSingleDimRateAsSingle存角度弧度轉(zhuǎn)換系數(shù)PrivateSubForm_Load()窗體加載Picture1.Scale(-360,2)-(360,-2)建立自定義坐標(biāo)系StartAngle=-360起始角EndAngle=360終止角Picture1.CurrentX=-360繪圖起點坐標(biāo)Picture1.CurrentY=0Rate=3.1416/180角度弧度轉(zhuǎn)換系數(shù)EndSubPrivateSubcommand1_Click()正弦曲線Fori=StartAngleToEndAnglePicture1.PSet(i,Sin(i*Rate)NextEndSubPrivateSubcommand2_Click()余弦曲線Fori=StartAngleToEndAnglePicture1.PSet(i,Cos(i*Rate)NextEndSubPrivateSubcommand3_Click()清除Picture1.ClsEndSubPrivateSubcommand4_Click()畫坐標(biāo)軸Picture1.Line(-360,0)-(360,0)X軸Picture1.Line(0,2)-(0,-2)Y軸EndSub,10.4.3Circle方法,Circle方法用于畫圓、橢圓、圓弧和扇形,其語法格式如下:對象.CircleStep(x,y),r,color,起始角,終止角,縱橫比說明:(1)對象:可以是窗體、圖片框或打印機(jī),省略時默認(rèn)為當(dāng)前窗體。(2)Step:表示采用當(dāng)前作圖位置的相對值。(3)(x,y):圓心坐標(biāo)。(4)r:半徑。(5)color:指定圓周邊線的顏色。若省略,則使用ForeColor屬性值??梢允褂盟鶎賹ο蟮腇illColor和FillStyle屬性填充封閉的圖形。(6)起始角和終止角:圓弧和扇形通過參數(shù)起始角、終止角控制。當(dāng)起始角、終止角取值在02時為圓弧。當(dāng)在起始角、終止角的取值前加一負(fù)號時,畫出扇形,負(fù)號表示從圓心到圓弧端點畫徑向線。(7)縱橫比:控制畫橢圓,默認(rèn)值為1,畫標(biāo)準(zhǔn)圓。注意:在VB坐標(biāo)系中,采用逆時針方向繪圓。Circle方法中參數(shù)前出現(xiàn)的負(fù)號,并不能改變坐標(biāo)系中旋轉(zhuǎn)的方向。使用Circle方法時,如果想省掉中間的參數(shù),逗號不能省略。例如:畫橢圓省掉了顏色、起始角、終止角三個參數(shù),則必須加上四個連續(xù)的逗號,它表明這三個參數(shù)被省掉了。,10.4.3Circle方法,【例10-6】用Circle方法畫圓、橢圓、圓弧和扇形,運(yùn)行結(jié)果如圖10-10所示。程序代碼:PrivateSubForm_Click()FillStyle=0FillColor=RGB(255,0,0)Circle(1000,1000),450Circle(2000,1000),450,2Circle(3000,1000),450,3.1415926/2,2*3.1415926Circle(4000,1000),450,-3.1415926/2,-2*3.1415926EndSub,圖10-10用Circle方法畫圓、橢圓、圓弧和扇形,10.4.4PaintPicture方法,PaintPicture方法用來把一個窗體或圖
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 外國教育史試題及答案
- 甜心小米測試題及答案
- 土木目標(biāo)控制試題及答案
- 2025年域名更新注冊管理協(xié)議
- 2025年建筑安裝勞務(wù)分包協(xié)議樣本
- 2025年夫妻債務(wù)承擔(dān)協(xié)議標(biāo)準(zhǔn)文本
- 綜合管線與設(shè)備安裝在施工中的協(xié)調(diào)與管理
- 教聯(lián)體發(fā)展中的師生互動模式創(chuàng)新
- 推動健美操創(chuàng)新的背景意義及必要性
- 區(qū)域影視產(chǎn)業(yè)鏈的優(yōu)化與產(chǎn)業(yè)升級路徑
- 醫(yī)療器械公司質(zhì)量管理體系文件
- 小升初語文閱讀技巧第十講把握人物情感變化含例題解析答案
- 餐飲合同股份協(xié)議書
- 第16課《學(xué)先鋒 做先鋒》(第二課時)教案教學(xué)設(shè)計 2025道德與法治一年級下冊
- 食管狹窄試題答案及解析
- 上海地理會考試卷及答案
- 《拼多多營銷策略》課件
- 【北京市人社局】2025年北京市人力資源市場薪酬數(shù)據(jù)報告(一季度)
- 礦山出售合同協(xié)議
- 醫(yī)務(wù)人員職業(yè)道德規(guī)范
- 醫(yī)院5s管理制度
評論
0/150
提交評論