第十章節(jié)圖形的控制跟處理課本新課件_第1頁
第十章節(jié)圖形的控制跟處理課本新課件_第2頁
第十章節(jié)圖形的控制跟處理課本新課件_第3頁
第十章節(jié)圖形的控制跟處理課本新課件_第4頁
第十章節(jié)圖形的控制跟處理課本新課件_第5頁
已閱讀5頁,還剩87頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第十章節(jié)圖形的控制跟處理課本新第十章節(jié)圖形的控制跟處理課本新第十章節(jié)圖形的控制跟處理課本新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格式的圖形文件。第十章節(jié)圖形的控制跟處理課本新第十章節(jié)圖形的控制跟處理課本新110.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圖形控件VB提供的與繪圖有關(guān)的標(biāo)準(zhǔn)控件有圖片框(P210.1.1PictureBox控件圖片框(PictureBox)控件的主要作用是在窗體的指定位置為用戶顯示圖片,也可作為其它控件的容器、顯示Print方法輸出的文本或顯示圖形方法輸出的圖形。實(shí)際顯示的圖片由Picture屬性決定。在工具箱面板中,PictureBox控件的圖標(biāo)如圖10-1所示。圖10-1PictureBox控件的圖標(biāo)

10.1.1PictureBox控件圖片框(Picture310.1.1PictureBox控件1、主要屬性基本屬性Name標(biāo)識唯一的對象,運(yùn)行時(shí)為只讀Height、Width、Top、Left標(biāo)識控件在容器上顯示的尺寸及位置Enabled決定對象運(yùn)行時(shí)是否有效。True:運(yùn)行時(shí)有效;False:運(yùn)行時(shí)無效Visible決定對象運(yùn)行時(shí)是否可見。True:運(yùn)行時(shí)可見;False:運(yùn)行時(shí)不可見Font設(shè)置與字體有關(guān)的所有內(nèi)容。包括FontName、FontSize、FontBold、FontItalic、FontUnderline等特有屬性PicturePicture屬性用來返回或設(shè)置控件中要顯示的圖片,可以通過屬性窗口進(jìn)行設(shè)置。如果要在程序運(yùn)行過程中載入圖片,常常使用LoadPicture函數(shù)AutoSizeAutoSize屬性用于設(shè)置是否能自動調(diào)整圖片框大小,以完整顯示裝入的圖片。值為True時(shí),自動調(diào)整大小,以顯示裝入的整個(gè)圖片;值為False時(shí),保持控件大小,裝入的圖片超出的部分被截除。10.1.1PictureBox控件1、主要屬性基Nam410.1.1PictureBox控件2、加載圖片(1)在設(shè)計(jì)階段加載圖片文件有兩種方法:1)通過設(shè)置屬性窗口中的Picture屬性來加載圖片,步驟如下:在窗體上建立一個(gè)圖片框保持圖片框?yàn)榧せ畹目丶?,在屬性窗口中找到Picture屬性,單擊該屬性條,其右側(cè)出現(xiàn)“…”按鈕單擊“…”按鈕,屏幕顯示“加載圖片”對話框,從相應(yīng)文件夾中找到所需加載的圖片,單擊打開,圖片即被加載2)利用剪貼板加載用繪圖或圖像處理軟件完成圖形處理,并將圖形復(fù)制到剪貼板中切換到VB,在窗體上建立圖片框,并保持為激活狀態(tài)使用“粘貼”命令,即完成圖片加載10.1.1PictureBox控件2、加載圖片(1)在510.1.1PictureBox控件2、加載圖片(2)在運(yùn)行階段通過LoadPicture函數(shù)加載圖片,格式如下:對象名.Picture=LoadPicture("圖片文件名")例如:加載圖片:Picture1.Picture=LoadPicture("C:\Pic\MyPic1.gif")10.1.1PictureBox控件2、加載圖片(2)在610.1.1PictureBox控件3.卸載圖片和復(fù)制圖片(1)卸載圖片卸載圖片文件也有兩種方法:一種是在設(shè)計(jì)階段卸載,另一種是在運(yùn)行階段卸載。在設(shè)計(jì)階段設(shè)置屬性窗口中的Picture屬性為None,在運(yùn)行階段通過LoadPicture函數(shù)卸載圖片,格式如下:對象名.Picture=LoadPicture()(2)復(fù)制圖片復(fù)制圖片可以利用Picture屬性和LoadPicture()函數(shù)來完成,如:Picture1.Picture=LoadPicture("C:\Pic\MyPic1.gif")Picture2.Picture=Picture1.Picture10.1.1PictureBox控件3.卸載圖片和復(fù)制圖片710.1.1PictureBox控件4.圖形文件的保存格式:SavePicturepicture,stringexpression說明:picture:圖片框?qū)ο蠡蚱渌麑ο蟮膒icture屬性Stringexpression:文件名10.1.1PictureBox控件4.圖形文件的保存格式810.1.1PictureBox控件5.Paint事件在一個(gè)對象被移動或放大之后,或在一個(gè)覆蓋該對象的窗體被移開之后,該對象部分或全部暴露時(shí),此事件發(fā)生。如果AutoRedraw屬性被設(shè)置為True,重新繪圖會自動進(jìn)行,就不需要Paint事件。10.1.1PictureBox控件5.Paint事件在一910.1.1PictureBox控件6.常用方法圖片框中常使用Cls方法和Print方法?!纠?0-1】在C:\新建一個(gè)文件夾stu1,將我的文檔中的示例圖片Sunset.JPG復(fù)制到stu1文件夾下。再啟動VB,在stu1文件夾下新建一個(gè)工程文件,其布局與運(yùn)行結(jié)果如圖10-2所示。圖10-2控件布局圖及運(yùn)行結(jié)果圖

10.1.1PictureBox控件6.常用方法圖片框中常1010.1.1PictureBox控件(1)控件選擇:兩個(gè)標(biāo)簽控件:Label1、Label2;兩個(gè)圖片框控件:Picture1、Picture2;三個(gè)命令按鈕:Cmd1、Cmd2、Cmd3(2)控件屬性設(shè)置:控件名稱屬性Caption屬性標(biāo)簽Label1Caption源圖標(biāo)簽Label2Caption復(fù)制圖片圖片框Picture1PictureNone圖片框Picture2PictureNone命令按鈕Cmd1Caption加載圖片命令按鈕Cmd2Caption復(fù)制圖片命令按鈕Cmd3Caption清除圖片10.1.1PictureBox控件(1)控件選擇:兩個(gè)標(biāo)1110.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.1PictureBox控件(3)代碼編寫:1210.1.2Image控件圖像框(Image)控件是一個(gè)簡單易用的顯示圖像文件的控件,其使用的系統(tǒng)資源較少而且顯示速度較快,它可以自動調(diào)整自身的大小以適應(yīng)圖像大小,或者伸縮圖像的大小使圖像適合圖像框控件的大小。Image加載圖片的方法和使用圖片的文件格式與PictureBox相同。在工具箱面板中,Image控件的圖標(biāo)如圖10-3所示。圖10-3Image控件的圖標(biāo)10.1.2Image控件圖像框(Image)控件是一個(gè)簡1310.1.2Image控件1.主要屬性基本屬性Name標(biāo)識唯一的對象,運(yùn)行時(shí)為只讀Height、Width、Top、Left標(biāo)識控件在容器上顯示的位置及尺寸Enabled決定對象運(yùn)行時(shí)是否有效。True:運(yùn)行時(shí)有效;False:運(yùn)行時(shí)無效Visible決定對象運(yùn)行時(shí)是否可見。True:運(yùn)行時(shí)可見;False:運(yùn)行時(shí)不可見特有屬性Picture可通過屬性窗口進(jìn)行設(shè)置,也可以在程序中進(jìn)行設(shè)置。VB6.0支持位圖文件、圖標(biāo)文件、JPEG及GIF壓縮位圖文件Stretch自動調(diào)整圖像框中圖形內(nèi)容的大小。False:圖像框可以自動改變大小以適應(yīng)其中的圖形True:圖形自動調(diào)整尺寸以適應(yīng)圖像框的大小。10.1.2Image控件1.主要屬性基Name標(biāo)識唯1410.1.2Image控件2.常用事件圖像框可以響應(yīng)Click和DblClick事件3.Image與PictureBox的區(qū)別(1)PictureBox是“容器”控件,可以作為父控件,而Image不能作為父控件。也就是說,在PictureBox中,可以包含其它控件,作為他的子控件,如果移動PictureBox,則框中的控件也隨之一起移動,并且與PictureBox的相對位置保持不變;當(dāng)PictureBox的大小改變時(shí),這些子控件的圖片控制的相對位置保持不變,PictureBox內(nèi)的子控件也不能移到PictureBox外。(2)PictureBox可以通過Print方法接收文本,并可接收由像素組成的圖形,而Image不能接受用Print方法輸入的信息,也不能用繪圖方法在Image上繪制圖形。(3)Image比PictureBox占用內(nèi)存少,顯示速度快。(4)Image沒有AutoSize屬性,但可以實(shí)現(xiàn)圖形縮放10.1.2Image控件2.常用事件1510.1.2Image控件【例10-2】在C:\新建一個(gè)文件夾stu2,將我的文檔中的示例圖片Sunset.JPG復(fù)制到stu2文件夾下。再啟動VB,在stu2文件夾下新建一個(gè)工程文件,其布局與運(yùn)行結(jié)果如圖10-4所示。圖10-4控件布局圖及運(yùn)行結(jié)果圖

10.1.2Image控件【例10-2】在C:\新建一個(gè)文1610.1.2Image控件(1)控件選擇:1個(gè)圖像框Image1;2個(gè)命令按鈕:Command1、Command2(2)控件屬性設(shè)置控件名稱屬性屬性值圖像框Image1StretchTrue命令按鈕Command1Caption放大命令按鈕Command2Caption縮小10.1.2Image控件(1)控件選擇:1個(gè)圖像框Ima1710.1.2Image控件(3)代碼編寫:編寫命令按鈕Command1的Click事件:PrivateSubCommand1_Click()IfImage1.Height<2000OrImage1.Width<4000ThenImage1.Height=Image1.Height+500Image1.Width=Image1.Width+500EndIfEndSub編寫命令按鈕Command2的Click事件:PrivateSubCommand2_Click()IfImage1.Height>1000OrImage1.Width>2000ThenImage1.Height=Image1.Height-500Image1.Width=Image1.Width-500EndIfEndSub編寫窗體Form1的Load事件:PrivateSubForm_Load() Image1.Picture=LoadPicture(App.Path&"\Sunset.JPG")EndSub 10.1.2Image控件(3)代碼編寫:1810.1.3Line控件Line控件可用來在窗體、框架或圖片框中創(chuàng)建各種直線。既可以在設(shè)計(jì)時(shí)通過設(shè)置直線的端點(diǎn)坐標(biāo)來畫直線,又可以在程序運(yùn)行時(shí)動態(tài)地改變直線的各種屬性。Line控件主要屬性是BorderWidth、BorderStyle和BorderColor屬性,以及X1、Y1和X2、Y2屬性。BorderWidth確定線的寬度,BorderStyle確定線的形狀,BorderColor確定線的顏色。X1、Y1和X2、Y2屬性控制線的兩個(gè)端點(diǎn)的位置。程序運(yùn)行時(shí),不能使用Move方法移動Line控件,但是可以通過改變X1、Y1、X2、Y2屬性來移動或調(diào)整直線。在工具箱面板中,Line控件的圖標(biāo)如圖10-5所示。圖10-5Line控件的圖標(biāo)

10.1.3Line控件Line控件可用來在窗體、框架或1910.1.4Shape控件Shape控件可用來在窗體、框架或圖片框中創(chuàng)建矩形、正方形、橢圓形、圓形、圓角矩形或圓角正方形。通過設(shè)置Shape控件的Shape屬性來實(shí)現(xiàn)所需要的形狀,以控制Shape控件的外觀。在工具箱面板中,Shape控件的圖標(biāo)如圖10-6所示。圖10-6Shape控件的圖標(biāo)10.1.4Shape控件Shape控件可用來在窗體、框2010.1.4Shape控件語法:對象名.Shape[=value]其中,對象名是Shape控件的Name屬性;value用來指定控件外觀的整數(shù)。其設(shè)置值如表10-5所示。常數(shù)值描述vbShapeRectangle0矩形,默認(rèn)值vbShapeSquare1正方形vbShapeOval2橢圓形vbShapeCircle3圓形vbShapeRoundedRectangle4圓角矩形vbShapeRoundedSquare5圓角正方形10.1.4Shape控件語法:對象名.Shape[=va2110.2坐標(biāo)系統(tǒng)對象定位使用的是容器的坐標(biāo)系,每個(gè)容器都有一個(gè)坐標(biāo)系。坐標(biāo)系由三要素構(gòu)成:坐標(biāo)原點(diǎn),坐標(biāo)度量單位(刻度),坐標(biāo)軸的長度與方向。VB提供兩類坐標(biāo)系:默認(rèn)坐標(biāo)系和自定義坐標(biāo)系。默認(rèn)坐標(biāo)系中原點(diǎn)(0,0)定位于對象容器用戶區(qū)的左上角,X軸向右為正方向,Y軸向下為正方向。對象坐標(biāo)的度量單位由容器對象的ScaleMode屬性決定,共有8種形式的單位,默認(rèn)為Twip。用ScaleMode屬性只能改變刻度單位,不能改變坐標(biāo)原點(diǎn)及坐標(biāo)軸的方向。10.2坐標(biāo)系統(tǒng)對象定位使用的是容器的坐標(biāo)系,每個(gè)容器都有一2210.2坐標(biāo)系統(tǒng)建立自定義坐標(biāo)系更簡單的做法是調(diào)用容器對象的Scale方法,語法格式為:[容器對象.]Scale(x1,y1)-(x2,y2)說明:容器對象是指窗體或圖片框,省略時(shí)默認(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)原點(diǎn)。10.2坐標(biāo)系統(tǒng)建立自定義坐標(biāo)系更簡單的做法是調(diào)用容器對象的2310.3相關(guān)屬性和函數(shù)10.3.1與繪圖方法有關(guān)的屬性

10.3.2與顏色有關(guān)的函數(shù)10.3相關(guān)屬性和函數(shù)10.3.1與繪圖方法有關(guān)的屬性2410.3.1與繪圖方法有關(guān)的屬性1.當(dāng)前坐標(biāo)CurrentX,CurrentY屬性給出窗體或圖片框或打印機(jī)在繪圖時(shí)的當(dāng)前坐標(biāo)。這兩個(gè)屬性在設(shè)計(jì)階段不能使用,使用CLS方法后,CurrentX、CurrentY屬性值為0。2.線寬和線型DrawWidth屬性用來返回或設(shè)置圖形方法輸出的線寬。屬性值的單位為像素,取值范圍為1~32767,默認(rèn)值為1。DrawStyle屬性用來返回或設(shè)置圖形方法輸出的線型,如表10-6所示。該屬性的設(shè)置值0~4的效果分別與Line控件的BordeStyle屬性的1~5對應(yīng)。若DrawWidth屬性設(shè)置值大于1,在DrawStyle屬性被設(shè)置為1~4時(shí),只能畫實(shí)線。10.3.1與繪圖方法有關(guān)的屬性1.當(dāng)前坐標(biāo)2510.3.1與繪圖方法有關(guān)的屬性2.線寬和線型常數(shù)設(shè)置值描述常數(shù)設(shè)置值描述VbSolid0實(shí)線(缺省)VbDashDotDot4點(diǎn)點(diǎn)劃線VbDash1虛線VbInvisible5透明線VbDot2點(diǎn)線VbInsideSolid6內(nèi)實(shí)線VbDashDot3點(diǎn)劃線表10-6DrawStyle設(shè)置表

10.3.1與繪圖方法有關(guān)的屬性2.線寬和線型常數(shù)設(shè)置值描述2610.3.1與繪圖方法有關(guān)的屬性2.線寬和線型常數(shù)設(shè)置值描述常數(shù)設(shè)置值描述VbFSSolid0實(shí)線VbUpwardDiagonal4上斜對角線VbFSTransparent1透明(缺省)VbDownwardDiagonal5下斜對角線VbHorizontalLine2水平直線VbCross6十字線VbVerticalLine3垂直直線VbDiagonalCross7交叉對角線表10-7FillStyle設(shè)置表10.3.1與繪圖方法有關(guān)的屬性2.線寬和線型常數(shù)設(shè)置值描述2710.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.1與繪圖方法有關(guān)的屬性3.填充顏色與填充樣式2810.3.2與顏色有關(guān)的函數(shù)顏色的使用是繪圖操作中的重要環(huán)節(jié)。在程序運(yùn)行時(shí),有四種方式可以指定顏色值:使用QBColor函數(shù);使用RGB函數(shù);使用內(nèi)部常數(shù);直接輸入顏色值。1.QBColor函數(shù)QBColor函數(shù)能夠選擇早期版本的Basic所規(guī)定的16種顏色之一。其語法格式為:QBColor(Color)說明:Color是一個(gè)界于0~15的整型數(shù),用于指定顏色。表10-8列出了QBColor函數(shù)中Color取值所對應(yīng)的顏色。10.3.2與顏色有關(guān)的函數(shù)顏色的使用是繪圖操作中的重要環(huán)2910.3.2與顏色有關(guān)的函數(shù)Color取值顏色Color取值顏色0黑8灰1藍(lán)9亮藍(lán)2綠10亮綠3青11亮青4紅12亮紅5洋紅13亮洋紅6黃14亮黃7白15亮白表10-8QBColor函數(shù)中Color的取值與所對應(yīng)的顏色10.3.2與顏色有關(guān)的函數(shù)Color取值顏色Color取3010.3.2與顏色有關(guān)的函數(shù)2.RGB函數(shù)RGB函數(shù)用來返回一個(gè)Long整數(shù),用來表示一個(gè)RGB顏色值。其語法格式為:RGB(red,green,blue)說明:red是必需的,Variant(Integer)。數(shù)值范圍從0~255,表示顏色的紅色成分。green是必需的,Variant(Integer)。數(shù)值范圍從0~255,表示顏色的綠色成分。blue是必需的,Variant(Integer)。數(shù)值范圍從0~255,表示顏色的藍(lán)色成分。一個(gè)RGB顏色指定紅、綠、藍(lán)三原色的成分,生成一個(gè)用于顯示的特定的顏色。傳給RGB的任何參數(shù)的值,如果超過255,會被當(dāng)做255。表10-9列出了常見的標(biāo)準(zhǔn)顏色RGB的值。10.3.2與顏色有關(guān)的函數(shù)2.RGB函數(shù)3110.3.2與顏色有關(guān)的函數(shù)2.RGB函數(shù)顏色redgreenblue黑000紅25500綠02550藍(lán)00255青0255255洋紅2550255黃2552550白255255255表10-9常見的標(biāo)準(zhǔn)顏色RGB的值10.3.2與顏色有關(guān)的函數(shù)2.RGB函數(shù)顏色redgre3210.4圖形方法10.4.1Line方法10.4.2Pset方法10.4.3Circle方法10.4.4PaintPicture方法10.4圖形方法10.4.1Line方法3310.4.1Line方法Line方法用于畫直線或矩形,其語法格式如下:[對象.]Line[[Step](x1,y1)]-[Step](x2,y2)[,Color][,B[F]]說明:(1)對象:可以是窗體或圖片框,若省略則默認(rèn)為當(dāng)前窗體。(2)(x1,y1):線段的起點(diǎn)坐標(biāo)或矩形的左上角坐標(biāo)。(3)(x2,y2):線段的終點(diǎn)坐標(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屬性決定。畫直線時(shí),省略[B][F]參數(shù);畫矩形時(shí),參數(shù)B為空心矩形,BF為實(shí)心矩形。10.4.1Line方法Line方法用于畫直線或矩形,其語3410.4.1Line方法【例10-3】使用Line方法畫出如圖10-7所示的三角形。首先將窗體的AutoRedraw屬性設(shè)置為True。然后編寫代碼如下:PrivateSubForm_Load()Line(100,100)-Step(0,500) '終點(diǎn)采用相對坐標(biāo)

Line-Step(500,0) '以上次畫線的終點(diǎn)為本次畫線起點(diǎn)

Line-(100,100) '返回最初的起點(diǎn)EndSub圖10-7使用Line方法繪制的三角形10.4.1Line方法【例10-3】使用Line方法畫出3510.4.1Line方法【例10-4】用Line方法在窗體上繪制如圖10-8所示的同心矩形,每當(dāng)單擊窗體時(shí),矩形的顏色隨機(jī)變化。編寫代碼如下:PrivateSubForm_Click()DimCX,CY,F,F1,F2,i '聲明變量

CX=ScaleWidth/2 '水平中點(diǎn)

CY=ScaleHeight/2 '垂直中點(diǎn)

DrawWidth=10 '設(shè)置線寬

Fori=50To0Step-4 '從外向內(nèi)畫矩形

F=i/50 '坐標(biāo)偏移量系數(shù)。

F1=1-F:F2=1+F '計(jì)算矩形左上角和右下角坐標(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.1Line方法【例10-4】用Line方法在窗體3610.4.2Pset方法Pset方法用于在窗體、圖片框或打印機(jī)指定位置上畫點(diǎn),利用Pset方法可以畫任意曲線。其語法格式如下:[對象.]Pset[Step](x,y)[,Color]說明:(1)參數(shù)(x,y):必需的。x和y是單精度浮點(diǎn)數(shù),即所畫點(diǎn)的水平坐標(biāo)(x軸)和垂直坐標(biāo)(y軸)。(2)Step:可選,表示采用當(dāng)前作圖位置的相對值。(3)Color:可選,長整型數(shù),為該點(diǎn)指定RGB顏色。可用RGB函數(shù)或QBColor函數(shù)指定顏色。如果省略Color,則使用當(dāng)前的ForeColor屬性值。如果使用背景顏色,則可清除某個(gè)位置上的點(diǎn)。10.4.2Pset方法Pset方法用于在窗體、圖片框或打3710.4.2Pset方法【例10-5】繪制正弦曲線和余弦曲線。程序運(yùn)行結(jié)果如圖10-9所示。圖10-9繪制正弦曲線和余弦曲線10.4.2Pset方法【例10-5】繪制正弦曲線和余弦曲3810.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)原點(diǎn)位于矩形的中心,X軸的正向水平向右,Y軸的正向垂直向上。窗體中除了圖片框Picture1外,還需要四個(gè)命令按鈕:繪制正弦曲線的按鈕command1,繪制余弦曲線的按鈕command2,清除圖片框中的內(nèi)容的按鈕command3,繪制坐標(biāo)軸的按鈕command4。程序代碼如下:10.4.2Pset方法本例使用PictureBox控件的3910.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 '繪圖起點(diǎn)坐標(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軸EndSub10.4.2Pset方法DimStartAngleAs4010.4.3Circle方法Circle方法用于畫圓、橢圓、圓弧和扇形,其語法格式如下:[對象.]Circle[Step](x,y),r[,color][,起始角][,終止角][,縱橫比]說明:(1)對象:可以是窗體、圖片框或打印機(jī),省略時(shí)默認(rèn)為當(dāng)前窗體。(2)Step:表示采用當(dāng)前作圖位置的相對值。(3)(x,y):圓心坐標(biāo)。(4)r:半徑。(5)color:指定圓周邊線的顏色。若省略,則使用ForeColor屬性值??梢允褂盟鶎賹ο蟮腇illColor和FillStyle屬性填充封閉的圖形。(6)起始角和終止角:圓弧和扇形通過參數(shù)起始角、終止角控制。當(dāng)起始角、終止角取值在0~2π時(shí)為圓弧。當(dāng)在起始角、終止角的取值前加一負(fù)號時(shí),畫出扇形,負(fù)號表示從圓心到圓弧端點(diǎn)畫徑向線。(7)縱橫比:控制畫橢圓,默認(rèn)值為1,畫標(biāo)準(zhǔn)圓。注意:在VB坐標(biāo)系中,采用逆時(shí)針方向繪圓。Circle方法中參數(shù)前出現(xiàn)的負(fù)號,并不能改變坐標(biāo)系中旋轉(zhuǎn)的方向。使用Circle方法時(shí),如果想省掉中間的參數(shù),逗號不能省略。例如:畫橢圓省掉了顏色、起始角、終止角三個(gè)參數(shù),則必須加上四個(gè)連續(xù)的逗號,它表明這三個(gè)參數(shù)被省掉了。10.4.3Circle方法Circle方法用于畫圓、橢圓4110.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.3Circle方法【例10-6】用Circle方4210.4.4PaintPicture方法PaintPicture方法用來把一個(gè)窗體或圖片框中已裝入的圖像文件(如:.BMP、.ICO、.WMF等)取出一部分放到另一個(gè)(或是它本身)對象中。該方法可實(shí)現(xiàn)在繪圖對象內(nèi)部或?qū)ο笾g的圖像復(fù)制操作。其語法格式如下:[對象.]PaintPicture源圖像,x1,y1[,Width1][,Height1][,x2,y2][,Width2][,Height2]說明:(1)對象名為一個(gè)對象表達(dá)式,是控件的Name屬性。缺省時(shí)指帶焦點(diǎn)的窗體。(2)源圖像是必需的,是指在源對象中已裝入的圖像文件,這里指定的必須是源對象的Picture屬性。(3)x1,y1是必需的,分別是指在對象上繪制圖像的水平、垂直坐標(biāo)。(4)Width1、Height1是可選的,指定復(fù)制的圖像在目標(biāo)對象中的寬度和高度。當(dāng)指定的寬度或高度大于或小于復(fù)制圖像的寬度或高度時(shí),復(fù)制對象自動被拉伸或壓縮;默認(rèn)時(shí)取原始尺寸;當(dāng)這兩個(gè)參數(shù)為負(fù)數(shù)時(shí),復(fù)制的圖像水平或垂直翻轉(zhuǎn)。(5)x2,y2是可選的,分別是指要復(fù)制的區(qū)域左上角的水平、垂直坐標(biāo)。默認(rèn)值均為0。(6)Width2、Height2是可選的,指定源對象中要復(fù)制區(qū)域的寬度和高度。默認(rèn)時(shí)取源尺寸。10.4.4PaintPicture方法PaintPic4310.4.4PaintPicture方法【例10-7】在窗體上將圖片框中的圖片水平翻轉(zhuǎn)后平鋪。通過給目標(biāo)寬度參數(shù)設(shè)置負(fù)值可對圖片進(jìn)行水平翻轉(zhuǎn)。在窗體中央放置一個(gè)圖片框,在該圖片框中添加一幅圖片。輸入以下代碼:PrivateSubForm_Click()Picture1.Visible=FalseForm1.AutoRedraw=True DimiAsInteger,jAsIntegerDimxAsInteger,yAsIntegerx=ScaleWidth\Picture1.Width+1'根據(jù)窗體大小確定行、列數(shù)

y=ScaleHeight\Picture1.Height+1Fori=0Toy '行

Forj=0Tox '列

PaintPicturePicture1.Picture,j*Picture1.Width,i*Picture1.Height,-Picture1.Width,Picture1.HeightNextjNextiEndSub10.4.4PaintPicture方法【例10-7】在4410.4.4PaintPicture方法圖10-11例10-7程序布局及運(yùn)行結(jié)果10.4.4PaintPicture方法圖10-11例45匯報(bào)結(jié)束謝謝大家!請各位批評指正匯報(bào)結(jié)束謝謝大家!請各位批評指正46第十章節(jié)圖形的控制跟處理課本新第十章節(jié)圖形的控制跟處理課本新第十章節(jié)圖形的控制跟處理課本新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格式的圖形文件。第十章節(jié)圖形的控制跟處理課本新第十章節(jié)圖形的控制跟處理課本新4710.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圖形控件VB提供的與繪圖有關(guān)的標(biāo)準(zhǔn)控件有圖片框(P4810.1.1PictureBox控件圖片框(PictureBox)控件的主要作用是在窗體的指定位置為用戶顯示圖片,也可作為其它控件的容器、顯示Print方法輸出的文本或顯示圖形方法輸出的圖形。實(shí)際顯示的圖片由Picture屬性決定。在工具箱面板中,PictureBox控件的圖標(biāo)如圖10-1所示。圖10-1PictureBox控件的圖標(biāo)

10.1.1PictureBox控件圖片框(Picture4910.1.1PictureBox控件1、主要屬性基本屬性Name標(biāo)識唯一的對象,運(yùn)行時(shí)為只讀Height、Width、Top、Left標(biāo)識控件在容器上顯示的尺寸及位置Enabled決定對象運(yùn)行時(shí)是否有效。True:運(yùn)行時(shí)有效;False:運(yùn)行時(shí)無效Visible決定對象運(yùn)行時(shí)是否可見。True:運(yùn)行時(shí)可見;False:運(yùn)行時(shí)不可見Font設(shè)置與字體有關(guān)的所有內(nèi)容。包括FontName、FontSize、FontBold、FontItalic、FontUnderline等特有屬性PicturePicture屬性用來返回或設(shè)置控件中要顯示的圖片,可以通過屬性窗口進(jìn)行設(shè)置。如果要在程序運(yùn)行過程中載入圖片,常常使用LoadPicture函數(shù)AutoSizeAutoSize屬性用于設(shè)置是否能自動調(diào)整圖片框大小,以完整顯示裝入的圖片。值為True時(shí),自動調(diào)整大小,以顯示裝入的整個(gè)圖片;值為False時(shí),保持控件大小,裝入的圖片超出的部分被截除。10.1.1PictureBox控件1、主要屬性基Nam5010.1.1PictureBox控件2、加載圖片(1)在設(shè)計(jì)階段加載圖片文件有兩種方法:1)通過設(shè)置屬性窗口中的Picture屬性來加載圖片,步驟如下:在窗體上建立一個(gè)圖片框保持圖片框?yàn)榧せ畹目丶?,在屬性窗口中找到Picture屬性,單擊該屬性條,其右側(cè)出現(xiàn)“…”按鈕單擊“…”按鈕,屏幕顯示“加載圖片”對話框,從相應(yīng)文件夾中找到所需加載的圖片,單擊打開,圖片即被加載2)利用剪貼板加載用繪圖或圖像處理軟件完成圖形處理,并將圖形復(fù)制到剪貼板中切換到VB,在窗體上建立圖片框,并保持為激活狀態(tài)使用“粘貼”命令,即完成圖片加載10.1.1PictureBox控件2、加載圖片(1)在5110.1.1PictureBox控件2、加載圖片(2)在運(yùn)行階段通過LoadPicture函數(shù)加載圖片,格式如下:對象名.Picture=LoadPicture("圖片文件名")例如:加載圖片:Picture1.Picture=LoadPicture("C:\Pic\MyPic1.gif")10.1.1PictureBox控件2、加載圖片(2)在5210.1.1PictureBox控件3.卸載圖片和復(fù)制圖片(1)卸載圖片卸載圖片文件也有兩種方法:一種是在設(shè)計(jì)階段卸載,另一種是在運(yùn)行階段卸載。在設(shè)計(jì)階段設(shè)置屬性窗口中的Picture屬性為None,在運(yùn)行階段通過LoadPicture函數(shù)卸載圖片,格式如下:對象名.Picture=LoadPicture()(2)復(fù)制圖片復(fù)制圖片可以利用Picture屬性和LoadPicture()函數(shù)來完成,如:Picture1.Picture=LoadPicture("C:\Pic\MyPic1.gif")Picture2.Picture=Picture1.Picture10.1.1PictureBox控件3.卸載圖片和復(fù)制圖片5310.1.1PictureBox控件4.圖形文件的保存格式:SavePicturepicture,stringexpression說明:picture:圖片框?qū)ο蠡蚱渌麑ο蟮膒icture屬性Stringexpression:文件名10.1.1PictureBox控件4.圖形文件的保存格式5410.1.1PictureBox控件5.Paint事件在一個(gè)對象被移動或放大之后,或在一個(gè)覆蓋該對象的窗體被移開之后,該對象部分或全部暴露時(shí),此事件發(fā)生。如果AutoRedraw屬性被設(shè)置為True,重新繪圖會自動進(jìn)行,就不需要Paint事件。10.1.1PictureBox控件5.Paint事件在一5510.1.1PictureBox控件6.常用方法圖片框中常使用Cls方法和Print方法?!纠?0-1】在C:\新建一個(gè)文件夾stu1,將我的文檔中的示例圖片Sunset.JPG復(fù)制到stu1文件夾下。再啟動VB,在stu1文件夾下新建一個(gè)工程文件,其布局與運(yùn)行結(jié)果如圖10-2所示。圖10-2控件布局圖及運(yùn)行結(jié)果圖

10.1.1PictureBox控件6.常用方法圖片框中常5610.1.1PictureBox控件(1)控件選擇:兩個(gè)標(biāo)簽控件:Label1、Label2;兩個(gè)圖片框控件:Picture1、Picture2;三個(gè)命令按鈕:Cmd1、Cmd2、Cmd3(2)控件屬性設(shè)置:控件名稱屬性Caption屬性標(biāo)簽Label1Caption源圖標(biāo)簽Label2Caption復(fù)制圖片圖片框Picture1PictureNone圖片框Picture2PictureNone命令按鈕Cmd1Caption加載圖片命令按鈕Cmd2Caption復(fù)制圖片命令按鈕Cmd3Caption清除圖片10.1.1PictureBox控件(1)控件選擇:兩個(gè)標(biāo)5710.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.1PictureBox控件(3)代碼編寫:5810.1.2Image控件圖像框(Image)控件是一個(gè)簡單易用的顯示圖像文件的控件,其使用的系統(tǒng)資源較少而且顯示速度較快,它可以自動調(diào)整自身的大小以適應(yīng)圖像大小,或者伸縮圖像的大小使圖像適合圖像框控件的大小。Image加載圖片的方法和使用圖片的文件格式與PictureBox相同。在工具箱面板中,Image控件的圖標(biāo)如圖10-3所示。圖10-3Image控件的圖標(biāo)10.1.2Image控件圖像框(Image)控件是一個(gè)簡5910.1.2Image控件1.主要屬性基本屬性Name標(biāo)識唯一的對象,運(yùn)行時(shí)為只讀Height、Width、Top、Left標(biāo)識控件在容器上顯示的位置及尺寸Enabled決定對象運(yùn)行時(shí)是否有效。True:運(yùn)行時(shí)有效;False:運(yùn)行時(shí)無效Visible決定對象運(yùn)行時(shí)是否可見。True:運(yùn)行時(shí)可見;False:運(yùn)行時(shí)不可見特有屬性Picture可通過屬性窗口進(jìn)行設(shè)置,也可以在程序中進(jìn)行設(shè)置。VB6.0支持位圖文件、圖標(biāo)文件、JPEG及GIF壓縮位圖文件Stretch自動調(diào)整圖像框中圖形內(nèi)容的大小。False:圖像框可以自動改變大小以適應(yīng)其中的圖形True:圖形自動調(diào)整尺寸以適應(yīng)圖像框的大小。10.1.2Image控件1.主要屬性基Name標(biāo)識唯6010.1.2Image控件2.常用事件圖像框可以響應(yīng)Click和DblClick事件3.Image與PictureBox的區(qū)別(1)PictureBox是“容器”控件,可以作為父控件,而Image不能作為父控件。也就是說,在PictureBox中,可以包含其它控件,作為他的子控件,如果移動PictureBox,則框中的控件也隨之一起移動,并且與PictureBox的相對位置保持不變;當(dāng)PictureBox的大小改變時(shí),這些子控件的圖片控制的相對位置保持不變,PictureBox內(nèi)的子控件也不能移到PictureBox外。(2)PictureBox可以通過Print方法接收文本,并可接收由像素組成的圖形,而Image不能接受用Print方法輸入的信息,也不能用繪圖方法在Image上繪制圖形。(3)Image比PictureBox占用內(nèi)存少,顯示速度快。(4)Image沒有AutoSize屬性,但可以實(shí)現(xiàn)圖形縮放10.1.2Image控件2.常用事件6110.1.2Image控件【例10-2】在C:\新建一個(gè)文件夾stu2,將我的文檔中的示例圖片Sunset.JPG復(fù)制到stu2文件夾下。再啟動VB,在stu2文件夾下新建一個(gè)工程文件,其布局與運(yùn)行結(jié)果如圖10-4所示。圖10-4控件布局圖及運(yùn)行結(jié)果圖

10.1.2Image控件【例10-2】在C:\新建一個(gè)文6210.1.2Image控件(1)控件選擇:1個(gè)圖像框Image1;2個(gè)命令按鈕:Command1、Command2(2)控件屬性設(shè)置控件名稱屬性屬性值圖像框Image1StretchTrue命令按鈕Command1Caption放大命令按鈕Command2Caption縮小10.1.2Image控件(1)控件選擇:1個(gè)圖像框Ima6310.1.2Image控件(3)代碼編寫:編寫命令按鈕Command1的Click事件:PrivateSubCommand1_Click()IfImage1.Height<2000OrImage1.Width<4000ThenImage1.Height=Image1.Height+500Image1.Width=Image1.Width+500EndIfEndSub編寫命令按鈕Command2的Click事件:PrivateSubCommand2_Click()IfImage1.Height>1000OrImage1.Width>2000ThenImage1.Height=Image1.Height-500Image1.Width=Image1.Width-500EndIfEndSub編寫窗體Form1的Load事件:PrivateSubForm_Load() Image1.Picture=LoadPicture(App.Path&"\Sunset.JPG")EndSub 10.1.2Image控件(3)代碼編寫:6410.1.3Line控件Line控件可用來在窗體、框架或圖片框中創(chuàng)建各種直線。既可以在設(shè)計(jì)時(shí)通過設(shè)置直線的端點(diǎn)坐標(biāo)來畫直線,又可以在程序運(yùn)行時(shí)動態(tài)地改變直線的各種屬性。Line控件主要屬性是BorderWidth、BorderStyle和BorderColor屬性,以及X1、Y1和X2、Y2屬性。BorderWidth確定線的寬度,BorderStyle確定線的形狀,BorderColor確定線的顏色。X1、Y1和X2、Y2屬性控制線的兩個(gè)端點(diǎn)的位置。程序運(yùn)行時(shí),不能使用Move方法移動Line控件,但是可以通過改變X1、Y1、X2、Y2屬性來移動或調(diào)整直線。在工具箱面板中,Line控件的圖標(biāo)如圖10-5所示。圖10-5Line控件的圖標(biāo)

10.1.3Line控件Line控件可用來在窗體、框架或6510.1.4Shape控件Shape控件可用來在窗體、框架或圖片框中創(chuàng)建矩形、正方形、橢圓形、圓形、圓角矩形或圓角正方形。通過設(shè)置Shape控件的Shape屬性來實(shí)現(xiàn)所需要的形狀,以控制Shape控件的外觀。在工具箱面板中,Shape控件的圖標(biāo)如圖10-6所示。圖10-6Shape控件的圖標(biāo)10.1.4Shape控件Shape控件可用來在窗體、框6610.1.4Shape控件語法:對象名.Shape[=value]其中,對象名是Shape控件的Name屬性;value用來指定控件外觀的整數(shù)。其設(shè)置值如表10-5所示。常數(shù)值描述vbShapeRectangle0矩形,默認(rèn)值vbShapeSquare1正方形vbShapeOval2橢圓形vbShapeCircle3圓形vbShapeRoundedRectangle4圓角矩形vbShapeRoundedSquare5圓角正方形10.1.4Shape控件語法:對象名.Shape[=va6710.2坐標(biāo)系統(tǒng)對象定位使用的是容器的坐標(biāo)系,每個(gè)容器都有一個(gè)坐標(biāo)系。坐標(biāo)系由三要素構(gòu)成:坐標(biāo)原點(diǎn),坐標(biāo)度量單位(刻度),坐標(biāo)軸的長度與方向。VB提供兩類坐標(biāo)系:默認(rèn)坐標(biāo)系和自定義坐標(biāo)系。默認(rèn)坐標(biāo)系中原點(diǎn)(0,0)定位于對象容器用戶區(qū)的左上角,X軸向右為正方向,Y軸向下為正方向。對象坐標(biāo)的度量單位由容器對象的ScaleMode屬性決定,共有8種形式的單位,默認(rèn)為Twip。用ScaleMode屬性只能改變刻度單位,不能改變坐標(biāo)原點(diǎn)及坐標(biāo)軸的方向。10.2坐標(biāo)系統(tǒng)對象定位使用的是容器的坐標(biāo)系,每個(gè)容器都有一6810.2坐標(biāo)系統(tǒng)建立自定義坐標(biāo)系更簡單的做法是調(diào)用容器對象的Scale方法,語法格式為:[容器對象.]Scale(x1,y1)-(x2,y2)說明:容器對象是指窗體或圖片框,省略時(shí)默認(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)原點(diǎn)。10.2坐標(biāo)系統(tǒng)建立自定義坐標(biāo)系更簡單的做法是調(diào)用容器對象的6910.3相關(guān)屬性和函數(shù)10.3.1與繪圖方法有關(guān)的屬性

10.3.2與顏色有關(guān)的函數(shù)10.3相關(guān)屬性和函數(shù)10.3.1與繪圖方法有關(guān)的屬性7010.3.1與繪圖方法有關(guān)的屬性1.當(dāng)前坐標(biāo)CurrentX,CurrentY屬性給出窗體或圖片框或打印機(jī)在繪圖時(shí)的當(dāng)前坐標(biāo)。這兩個(gè)屬性在設(shè)計(jì)階段不能使用,使用CLS方法后,CurrentX、CurrentY屬性值為0。2.線寬和線型DrawWidth屬性用來返回或設(shè)置圖形方法輸出的線寬。屬性值的單位為像素,取值范圍為1~32767,默認(rèn)值為1。DrawStyle屬性用來返回或設(shè)置圖形方法輸出的線型,如表10-6所示。該屬性的設(shè)置值0~4的效果分別與Line控件的BordeStyle屬性的1~5對應(yīng)。若DrawWidth屬性設(shè)置值大于1,在DrawStyle屬性被設(shè)置為1~4時(shí),只能畫實(shí)線。10.3.1與繪圖方法有關(guān)的屬性1.當(dāng)前坐標(biāo)7110.3.1與繪圖方法有關(guān)的屬性2.線寬和線型常數(shù)設(shè)置值描述常數(shù)設(shè)置值描述VbSolid0實(shí)線(缺省)VbDashDotDot4點(diǎn)點(diǎn)劃線VbDash1虛線VbInvisible5透明線VbDot2點(diǎn)線VbInsideSolid6內(nèi)實(shí)線VbDashDot3點(diǎn)劃線表10-6DrawStyle設(shè)置表

10.3.1與繪圖方法有關(guān)的屬性2.線寬和線型常數(shù)設(shè)置值描述7210.3.1與繪圖方法有關(guān)的屬性2.線寬和線型常數(shù)設(shè)置值描述常數(shù)設(shè)置值描述VbFSSolid0實(shí)線VbUpwardDiagonal4上斜對角線VbFSTransparent1透明(缺?。¬bDownwardDiagonal5下斜對角線VbHorizontalLine2水平直線VbCross6十字線VbVerticalLine3垂直直線VbDiagonalCross7交叉對角線表10-7FillStyle設(shè)置表10.3.1與繪圖方法有關(guān)的屬性2.線寬和線型常數(shù)設(shè)置值描述7310.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.1與繪圖方法有關(guān)的屬性3.填充顏色與填充樣式7410.3.2與顏色有關(guān)的函數(shù)顏色的使用是繪圖操作中的重要環(huán)節(jié)。在程序運(yùn)行時(shí),有四種方式可以指定顏色值:使用QBColor函數(shù);使用RGB函數(shù);使用內(nèi)部常數(shù);直接輸入顏色值。1.QBColor函數(shù)QBColor函數(shù)能夠選擇早期版本的Basic所規(guī)定的16種顏色之一。其語法格式為:QBColor(Color)說明:Color是一個(gè)界于0~15的整型數(shù),用于指定顏色。表10-8列出了QBColor函數(shù)中Color取值所對應(yīng)的顏色。10.3.2與顏色有關(guān)的函數(shù)顏色的使用是繪圖操作中的重要環(huán)7510.3.2與顏色有關(guān)的函數(shù)Color取值顏色Color取值顏色0黑8灰1藍(lán)9亮藍(lán)2綠10亮綠3青11亮青4紅12亮紅5洋紅13亮洋紅6黃14亮黃7白15亮白表10-8QBColor函數(shù)中Color的取值與所對應(yīng)的顏色10.3.2與顏色有關(guān)的函數(shù)Color取值顏色Color取7610.3.2與顏色有關(guān)的函數(shù)2.RGB函數(shù)RGB函數(shù)用來返回一個(gè)Long整數(shù),用來表示一個(gè)RGB顏色值。其語法格式為:RGB(red,green,blue)說明:red是必需的,Variant(Integer)。數(shù)值范圍從0~255,表示顏色的紅色成分。green是必需的,Variant(Integer)。數(shù)值范圍從0~255,表示顏色的綠色成分。blue是必需的,Variant(Integer)。數(shù)值范圍從0~255,表示顏色的藍(lán)色成分。一個(gè)RGB顏色指定紅、綠、藍(lán)三原色的成分,生成一個(gè)用于顯示的特定的顏色。傳給RGB的任何參數(shù)的值,如果超過255,會被當(dāng)做255。表10-9列出了常見的標(biāo)準(zhǔn)顏色RGB的值。10.3.2與顏色有關(guān)的函數(shù)2.RGB函數(shù)7710.3.2與顏色有關(guān)的函數(shù)2.RGB函數(shù)顏色redgreenblue黑000紅25500綠02550藍(lán)00255青0255255洋紅2550255黃2552550白255255255表10-9常見的標(biāo)準(zhǔn)顏色RGB的值10.3.2與顏色有關(guān)的函數(shù)2.RGB函數(shù)顏色redgre7810.4圖形方法10.4.1Line方法10.4.2Pset方法10.4.3Circle方法10.4.4PaintPicture方法10.4圖形方法10.4.1Line方法7910.4.1Line方法Line方法用于畫直線或矩形,其語法格式如下:[對象.]Line[[Step](x1,y1)]-[Step](x2,y2)[,Color][,B[F]]說明:(1)對象:可以是窗體或圖片框,若省略則默認(rèn)為當(dāng)前窗體。(2)(x1,y1):線段的起點(diǎn)坐標(biāo)或矩形的左上角坐標(biāo)。(3)(x2,y2):線段的終點(diǎn)坐標(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屬性決定。畫直線時(shí),省略[B][F]參數(shù);畫矩形時(shí),參數(shù)B為空心矩形,BF為實(shí)心矩形。10.4.1Line方法Line方法用于畫直線或矩形,其語8010.4.1Line方法【例10-3】使用Line方法畫出如圖10-7所示的三角形。首先將窗體的AutoRedraw屬性設(shè)置為True。然后編寫代碼如下:PrivateSubForm_Load()Line(100,100)-Step(0,500) '終點(diǎn)采用相對坐標(biāo)

Line-Step(500,0) '以上次畫線的終點(diǎn)為本次畫線起點(diǎn)

Line-(100,100) '返回最初的起點(diǎn)EndSub圖10-7使用Line方法繪制的三角形10.4.1Line方法【例10-3】使用Line方法畫出8110.4.1Line方法【例10-4】用Line方法在窗體上繪制如圖10-8所示的同心矩形,每當(dāng)單擊窗體時(shí),矩形的顏色隨機(jī)變化。編寫代碼如下:PrivateSubForm_Click()DimCX,CY,F,F1,F2,i '聲明變量

CX=ScaleWidth/2 '水平中點(diǎn)

CY=ScaleHeight/2 '垂直中點(diǎn)

DrawWidth=10 '設(shè)置線寬

Fori=50To0Step-4 '從外向內(nèi)畫矩形

F=i/50 '坐標(biāo)偏移量系數(shù)。

F1=1-F:F2=1+F '計(jì)算矩形左上角和右下角坐標(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.1Line方法【例10-4】用Line方法在窗體8210.4.2Pset方法Pset方法用于在窗體、圖片框或打印機(jī)指定位置上畫點(diǎn),利用Pset方法可以畫任意曲線。其語法格式如下:[對象.]Pset[Step](x,y)[,Color]說明:(1)參數(shù)(x,y):必需的。x和y是單精度浮點(diǎn)數(shù),即所畫點(diǎn)的水平坐標(biāo)(x軸)和垂直坐標(biāo)(y軸)。(2)Step:可選,表示采用當(dāng)前作圖位置的相對值。(3)Color:可選,長整型數(shù),為該點(diǎn)指定RGB顏色??捎肦GB函數(shù)或QBColor函數(shù)指定顏色。如果省略Color,則使用當(dāng)前的ForeColor屬性值。如果使用背景顏色,則可清除某個(gè)位置上的點(diǎn)。10.4.2Pset方法Pset方法用于在窗體、圖片框或打8310.4.2Pset方法【例10-5】繪制正弦曲線和余弦曲線。程序運(yùn)行結(jié)果如圖10-9所示。圖10-9繪制正弦曲線和余弦曲線10.4.2Pset方法【例10-5】繪制正弦曲線和余弦曲8410.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)原點(diǎn)位于矩形的中心,X軸的正向水平向右,Y軸的正向垂直向上。窗體中除了圖片框Picture1外,還需要四個(gè)命令按鈕:繪制正弦曲線的按鈕command1,繪制余弦曲線的按鈕command2,清除圖片框中的內(nèi)容的按鈕command3,繪制坐標(biāo)軸的按鈕command4。程序代碼如下:10.4.2Pset方法本例使用PictureBox控件的8510.4.2Pset方法DimStartAngleAsSingle '存起始角DimEndAngleAsSingle 存終止角DimiAsSingleDimRateAsSingle '存角度弧度轉(zhuǎn)換系數(shù)PrivateSubForm_Load() '窗體加載

Picture1.Scale(-360,2)-(360,-2) '建立自定義坐標(biāo)系

StartAngle=

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論