版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
圖形操作第8章本章要點(diǎn)VisualBasic的坐標(biāo)系統(tǒng)繪圖屬性繪圖方法圖形處理與應(yīng)用
8.1VisualBasic的坐標(biāo)系統(tǒng)在VisualBasic中,每個(gè)對(duì)象定位于存放它的容器內(nèi),對(duì)象定位都要使用容器的坐標(biāo)系。例如,窗體處于屏幕(Screen)內(nèi),屏幕是窗體的容器。在窗體內(nèi)繪制控件,窗體就是控件的容器。如果在圖片框控件內(nèi)繪制圖形,該圖片框就是容器。容器內(nèi)的對(duì)象只能在容器界定的范圍內(nèi)變動(dòng)。當(dāng)移動(dòng)容器時(shí),容器內(nèi)的對(duì)象也隨著一起移動(dòng),而且與容器的相對(duì)位置保持不變。
VB的每個(gè)容器對(duì)象都有一個(gè)坐標(biāo)系。構(gòu)成一個(gè)坐標(biāo)系,需要三個(gè)要素:坐標(biāo)原點(diǎn)、坐標(biāo)度量單位以及坐標(biāo)軸的長(zhǎng)度與方向。
8.1.1標(biāo)準(zhǔn)坐標(biāo)系統(tǒng)
(2)ScaleLeft和ScaleTop屬性用于控制容器對(duì)象左邊和頂邊的坐標(biāo),根據(jù)這兩個(gè)屬性值可形成坐標(biāo)原點(diǎn)。無(wú)論采用哪一種坐標(biāo)度量單位,所有容器對(duì)象的ScaleLeft和ScaleTop屬性的默認(rèn)值均為0,即坐標(biāo)原點(diǎn)在對(duì)象的左上角。橫向向右為x軸正向,縱向向下為y軸正向。8.1VisualBasic的坐標(biāo)系統(tǒng)8.1.1標(biāo)準(zhǔn)坐標(biāo)系統(tǒng)
(0,0)(0,0)xxyy
(3)ScaleWidth和ScaleHeight屬性確定對(duì)象內(nèi)部水平方向和垂直方向的坐標(biāo)度量單位數(shù)。例如,設(shè)ScaleMode屬性值為5(即坐標(biāo)度量單位為英寸),如果ScaleWidth值為10,則表示該對(duì)象水平方向?qū)挾葹?0英寸。
8.1VisualBasic的坐標(biāo)系統(tǒng)8.1.1標(biāo)準(zhǔn)坐標(biāo)系統(tǒng)
注意:(1)ScaleLeft、ScaleTop屬性與Left、Top屬性的區(qū)別。(2)ScaleHeight、ScaleWidth屬性與Height、Width屬性的區(qū)別。
用戶可以改變對(duì)象的坐標(biāo)系統(tǒng),即自行定義坐標(biāo)系統(tǒng)的原點(diǎn)、坐標(biāo)軸的方向等,有以下兩種方法:
1.修改屬性值通過(guò)修改對(duì)象的ScaleLeft、ScaleTop、ScaleWidth和ScaleHeight四個(gè)屬性來(lái)設(shè)定自定義坐標(biāo)系統(tǒng):(1)按需要改變ScaleLeft,ScaleTop值后,坐標(biāo)系的X軸和Y軸按此值平移形成新的坐標(biāo)原點(diǎn)。(2)容器控件左上角的X、Y坐標(biāo)值為(ScaleLeft,ScaleTop),容器右下角坐標(biāo)值為(ScaleLeft+ScaleWidth,ScaleTop+ScaleHeight)。8.1VisualBasic的坐標(biāo)系統(tǒng)8.1.2自定義坐標(biāo)系統(tǒng)
2.使用Scale方法設(shè)置坐標(biāo)系這是用戶建立自定義坐標(biāo)系最方便的方法,格式:[對(duì)象.]Scale[(xLeft,yTop)-(xRight,yBottom)]功能:在程序中自定義坐標(biāo)系。Scale后面若不帶參數(shù),則表示取消用戶自定義坐標(biāo)系,采用默認(rèn)坐標(biāo)系。其中:(xLeft,yTop)為容器控件的左上角坐標(biāo),(xRight,yBottom)為右下角坐標(biāo)。與屬性的對(duì)應(yīng)關(guān)系是ScanLeft=xLeft
ScanTop=yTop
ScanWidth=xRight–xLeft
ScanHeight=yBottom-yTop
8.1VisualBasic的坐標(biāo)系統(tǒng)8.1.2自定義坐標(biāo)系統(tǒng)
例8-2使用Scale方法自定義一個(gè)坐標(biāo)系統(tǒng),使坐標(biāo)原點(diǎn)(0,0)在窗體的中央位置,X軸向右為正,Y軸向上為正。對(duì)應(yīng)的坐標(biāo)系統(tǒng)如圖所示。
演示程序8.1VisualBasic的坐標(biāo)系統(tǒng)8.1.2自定義坐標(biāo)系統(tǒng)
例8-3使用Line(0,0)-(1000,1000)繪制一條直線,觀察在不同坐標(biāo)系下的圖形效果。程序運(yùn)行結(jié)果如圖所示。
8.1VisualBasic的坐標(biāo)系統(tǒng)
8.1.2自定義坐標(biāo)系統(tǒng)
例8-4通過(guò)當(dāng)前橫坐標(biāo)、縱坐標(biāo)的適當(dāng)偏移,輸出立體字效果。如圖所示。
8.2繪圖屬性
8.2.1當(dāng)前坐標(biāo)演示程序
1.線寬窗體、圖片框、打印機(jī)等的DrawWidth屬性用于設(shè)置容器內(nèi)所畫線的寬度或點(diǎn)的大小。其語(yǔ)法格式為:[對(duì)象.]DrawWidth[=<Size>]其中,<Size>為數(shù)值表達(dá)式,其范圍從1到32767,該值以像素作為度量單位,缺省值為1,即一個(gè)像素寬。如果不是使用繪圖方法,而是使用控件(如直線控件、形狀控件)繪圖,則通過(guò)BorderWidth屬性定義所畫圖形的線條寬度。
8.2.2線寬與線型
8.2繪圖屬性
2.線型窗體、圖片框、打印機(jī)等的DrawStyle屬性用于設(shè)置在這些對(duì)象上所畫線的形狀。各種線型僅當(dāng)DrawWidth屬性值為1時(shí)才能產(chǎn)生。當(dāng)DrawWidth值大于1且DrawStyle屬性值為1~4時(shí),都只能產(chǎn)生實(shí)線效果。當(dāng)DrawWidth值大于l而Drawstyle值為6時(shí),則所畫內(nèi)實(shí)線僅當(dāng)是封閉線時(shí)才起作用。如果使用控件(如直線控件、形狀控件)繪圖,則可以通過(guò)BorderStyle屬性給出所畫圖形的線條形狀。BorderStyle屬性的取值與DrawStyle屬性取值稍有不同,如表8-2所示。
8.2.2線寬與線型
8.2繪圖屬性
8.2.3填充與色彩
封閉圖形的填充方式由FillStyle和FillColor兩個(gè)屬性決定。FillStyle用于設(shè)置或返回Shape控件、Circle以及Line方法生成的封閉圖形的內(nèi)部填充樣式,取值為0~8(共有8種圖案)。FillColor指定內(nèi)部填充圖案的顏色,默認(rèn)的顏色與ForeColor相同,即VB默認(rèn)采用對(duì)象的前景色繪圖。在窗體設(shè)計(jì)階段設(shè)置顏色時(shí),使用屬性窗口對(duì)應(yīng)屬性的“調(diào)色板”能夠可視化地設(shè)置當(dāng)前對(duì)象的顏色;在程序代碼中設(shè)置顏色(例如,使用賦值語(yǔ)句指定顏色)時(shí),則指定顏色的方式有以下四種:
8.2繪圖屬性
8.2.3填充與色彩
(1)使用RGB函數(shù):RGB(<Red>,<Green>,<Blue>)函數(shù)由三個(gè)參數(shù)經(jīng)數(shù)學(xué)組合而產(chǎn)生一個(gè)Long類型的整數(shù)值,表示一個(gè)特定的顏色。(2)使用QBColor函數(shù):QBColor(<顏色值>)函數(shù)用一個(gè)整數(shù)值對(duì)應(yīng)RGB的常用顏色值,<顏色值>取值范圍是0~15,共可表示16種顏色。(3)使用顏色常量:VB定義了一些顏色符號(hào)常量,包括8種常用顏色和Windows控制面板使用的系統(tǒng)顏色。(4)直接使用顏色設(shè)置值:通常用十六進(jìn)制數(shù)(標(biāo)記符號(hào)為H)表示顏色值。8.2繪圖屬性
8.2.3填充與色彩
例8-6使用相關(guān)繪圖屬性和繪圖方法設(shè)計(jì)如圖8-6所示的窗體界面。其中窗體四角是顏色固定的色塊,另在窗體上每單擊一次鼠標(biāo)畫一個(gè)圓,其填充色和邊線樣式隨機(jī)變化。
8.2繪圖屬性
演示程序8.2.4圖形的重繪
1.AutoRedraw屬性該屬性用于確定圖片框或窗體中(用繪圖方法繪制)的圖形在覆蓋它的對(duì)象移走后是否重新顯示,它的值取True或False。注意,對(duì)于以圖標(biāo)、位圖及其它源文件形式加載的圖形,與AutoRedraw屬性設(shè)置值無(wú)關(guān),因?yàn)閂isualBasic能保存并自動(dòng)重繪這些圖形。只有在程序中用繪圖方法繪制的圖形及用print方法放置的文本才需要用AutoRedraw屬性。8.2繪圖屬性
8.2.4圖形的重繪
2.Paint事件Paint事件是在窗體或圖片框上的覆蓋窗口移開后,或者是在窗體加載、最小化、還原和最大化時(shí)被觸發(fā);使用Refresh方法(用于強(qiáng)制重繪一個(gè)窗體或控件的全部)時(shí),也觸發(fā)Paint事件。因此,該事件可用于重繪圖片框或重繪窗體中用Circle、Line等方法繪制的圖形,使用時(shí)只需要將這些繪圖方法放在此事件過(guò)程中就可以了。Paint事件常用于在AutoRedraw屬性設(shè)置為False(默認(rèn))時(shí),以恢復(fù)圖片框或窗體上被破壞的圖形或文本。
8.2繪圖屬性
8.2.4圖形的重繪
例8-7在窗體中畫一個(gè)米字形。當(dāng)窗體的大小改變時(shí),米字形也隨著自動(dòng)調(diào)整。運(yùn)行界面如圖所示。
8.2繪圖屬性
演示程序
例8-8用Pset方法在窗體上繪制函數(shù)y=Cos(x)的曲線。運(yùn)行界面如圖所示。
演示程序8.3.1Pset方法
8.3繪圖方法
例8-9用Pset方法,以像素為單位,在窗體上設(shè)計(jì)慶賀新年的五彩粹紙效果。運(yùn)行界面如圖所示。
演示程序8.3.1Pset方法
8.3繪圖方法
例8-10設(shè)計(jì)一個(gè)簡(jiǎn)單的畫圖程序,以鼠標(biāo)為畫筆在窗體上畫圖,并提供橡皮擦功能,以便擦除不需要的內(nèi)容。運(yùn)行界面如圖所示。
8.3繪圖方法
8.3.2Line方法
例8-11編寫程序,實(shí)現(xiàn)圖形處理中的“溶解”效果。運(yùn)行界面如圖所示。
8.3繪圖方法
8.3.2Line方法
演示程序
Circle方法可用于在指定容器對(duì)象內(nèi)畫圓、橢圓、圓弧、扇形等。格式:[對(duì)象名.]Circle[[Step](X,Y),半徑[,顏色]
[,起始角][,終止角][,長(zhǎng)短軸比率]]]
功能:在由[對(duì)象名.]指定的容器內(nèi),在坐標(biāo)系中以(X,Y)為圓心畫圓、橢圓、圓弧或扇形。8.3繪圖方法
8.3.3Circle方法
注意:(1)(X,Y):為圓心坐標(biāo)。
(2)半徑:為圓的半徑。(3)[,起始角]和[,終止角]:可控制畫圓弧和扇形。當(dāng)起始角、終止角取值在0~2π時(shí)為圓弧,當(dāng)在起始角、終止角取值前加一負(fù)號(hào)時(shí),畫出扇形。
(4)[,長(zhǎng)短軸比率]:可控制畫圓還是橢圓,默認(rèn)值為1,畫圓。若要填充橢圓、圓的區(qū)域,則設(shè)置FillStyle為0(實(shí)心)與FillColor屬性值,邊界寬度由DrawWidth屬性值決定。
8.3繪圖方法
8.3.3Circle方法
例如,利用Circle方法畫圓弧、扇形、橢圓等,代碼如下:8.3繪圖方法
8.3.3Circle方法
PrivateSubform_click()Constpi=3.14159ScaleWidth=100ScaleHeight=100Circle(30,30),10'標(biāo)準(zhǔn)圓Circle(70,30),10,RGB(0,0,255),,,0.5'藍(lán)色橢圓Circle(70,30),10,vbRed,,,2'紅色橢圓Circle(30,75),10,,-0.75*pi,-0.25*pi'扇形DrawWidth=2'邊線的寬度為兩個(gè)象素Circle(70,75),10,,-0.25*pi,-0.75*pi'扇形Circle(70,75),10,,1.25*pi,1.75*pi'圓弧EndSub8.3繪圖方法
8.3.3Circle方法
例8-12設(shè)計(jì)一個(gè)窗體,利用Circle方法在同一圓心點(diǎn)畫兩組同心橢圓。程序運(yùn)行界面如圖所示。
演示程序8.3繪圖方法
8.3.3Circle方法
例8-13設(shè)計(jì)一個(gè)窗體,根據(jù)輸入的3個(gè)班的學(xué)生人數(shù),顯示各班人數(shù)所占比例的餅圖。程序運(yùn)行界面如圖所示。
演示程序8.3繪圖方法
8.3.3Circle方法
Point方法用于返回窗體、圖形框等容器上指定點(diǎn)的RGB顏色,其語(yǔ)法格式如下
[對(duì)象名.]Point(x,y)如果由(x,y)坐標(biāo)指定的點(diǎn)在對(duì)象外面,Point方法返回-1(即True)。8.3繪圖方法
8.3.4Point方法
例8-14用Point方法獲取一個(gè)區(qū)域的信息并使用PSet方法進(jìn)行仿真。運(yùn)行結(jié)果如圖所示。
例8-15設(shè)計(jì)一個(gè)窗體,實(shí)現(xiàn)畫圖程序中的“吸管”效果。運(yùn)行界面如圖所示。
8.3繪圖方法
8.3.4Point方法
演示程序
VisualBasic在構(gòu)造圖形時(shí),可在三個(gè)不同的屏幕層次上放置控件或圖形的各組成部分。就視覺(jué)效果而言,最上層離用戶最近,而最下一層離用戶最遠(yuǎn)。
三個(gè)圖形層所放置的對(duì)象類型:
8.4圖形處理與應(yīng)用
8.4.1圖形層
層次對(duì)象類型最上層工具箱中除標(biāo)簽、線條、形狀外的控件對(duì)象中間層工具箱中標(biāo)簽、線條、形狀控件對(duì)象最下層由圖形方法所繪制的圖形
位于上層的對(duì)象會(huì)遮蓋下層相同位置上的任何對(duì)象,這跟繪制的前后順序無(wú)關(guān)。屬于同一層次的對(duì)象在發(fā)生層疊時(shí),后繪制的對(duì)象會(huì)遮蓋先繪制的對(duì)象。
同一圖形層內(nèi)控件對(duì)象排列順序稱為Z序列。設(shè)計(jì)時(shí),可以通過(guò)“格式”菜單中的“順序”命令調(diào)整Z序列;運(yùn)行時(shí),可使用ZOrder方法將特定的對(duì)象調(diào)整到同一圖形層內(nèi)的前面或后面。ZOrder方法格式:對(duì)象.Zorder[位置]
8.4圖形處理與應(yīng)用
8.4.1圖形層
例如,圖形層特點(diǎn)的利用:
(1)在命令按鈕后面放置一個(gè)表面色彩為黑色的標(biāo)簽并適當(dāng)錯(cuò)開,即可使命令按鈕具有懸浮效果。(2)添加兩個(gè)標(biāo)簽,顯示相同的文本,采用不同的前景色,背景風(fēng)格均置為透明,使之重疊并適當(dāng)錯(cuò)開,有立體字效果
。8.4圖形處理與應(yīng)用
8.4.1圖形層
讓一系列圖片連續(xù)顯示,利用人眼的視覺(jué)暫留特性,可以形成動(dòng)畫效果。程序設(shè)計(jì)時(shí)采用幀動(dòng)畫原理,即通過(guò)一系列靜態(tài)圖,使之連續(xù)快速變化產(chǎn)生動(dòng)畫效果,也可以通過(guò)Move方法改變圖形對(duì)象的Top及Left屬性來(lái)移動(dòng)圖形。此外,在移動(dòng)圖形的同時(shí)還可以改變圖形對(duì)象的Width、Height屬性值,形成相對(duì)運(yùn)動(dòng)。動(dòng)畫的速度采用定時(shí)器控制。
8.4.2簡(jiǎn)單的動(dòng)畫制作8.4圖形處理與應(yīng)用
例8-16把一組月亮圖案拷貝到工作目錄下,編寫VB程序模擬月相的變化。設(shè)計(jì)界面和運(yùn)行界面如圖所示。
8.4.2簡(jiǎn)單的動(dòng)畫制作8.4圖形處理與應(yīng)用
例8-17設(shè)計(jì)一個(gè)在窗體上滾動(dòng)的小球,且窗體文字產(chǎn)生閃爍效果。運(yùn)行界面如圖所示。
演示程序8.4.2簡(jiǎn)單的動(dòng)畫制作8.4圖形處理與應(yīng)用
圖形處理的PaintPicture方法可從一個(gè)窗體或圖形框控件中向另一個(gè)對(duì)象復(fù)制一個(gè)矩形區(qū)域的像素。使用該方法,可以在窗體、圖片框和Printer對(duì)象上的任何地方繪制圖形,對(duì)圖形進(jìn)行復(fù)制、改變大小、重新定位及水平或垂直翻轉(zhuǎn)等操作。
8.4.3圖形的變換8.4圖形處理與應(yīng)用
PaintPicture方法的語(yǔ)法如下:<對(duì)象>.PaintPicturePicture,x1,y1,Width1,Height1,[x2],[y2],[Width2],[Height2]各參數(shù)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度辦公室租賃合同模板:含員工激勵(lì)及福利計(jì)劃3篇
- 2025年度互聯(lián)網(wǎng)企業(yè)精英招聘與股權(quán)激勵(lì)服務(wù)合同3篇
- 二零二五年度農(nóng)業(yè)勞務(wù)用工合作合同范本(含農(nóng)業(yè)廢棄物回收利用)3篇
- 2025年度養(yǎng)豬場(chǎng)養(yǎng)殖廢棄物資源化利用設(shè)備轉(zhuǎn)讓合同3篇
- 二零二五年度林業(yè)資源整合競(jìng)業(yè)禁止模板木方供應(yīng)合同3篇
- 農(nóng)村土地承包經(jīng)營(yíng)權(quán)流轉(zhuǎn)買賣合同(2025年版)3篇
- 二零二五年度典當(dāng)物品跨境交易合同3篇
- 2025年度農(nóng)機(jī)購(gòu)買與農(nóng)資配套服務(wù)合同3篇
- 2025農(nóng)村住房安全責(zé)任與社區(qū)管理合同
- 2025年度國(guó)際貿(mào)易公司間勞務(wù)協(xié)作與跨境物流合同3篇
- 部編人教版四年級(jí)數(shù)學(xué)上冊(cè)期末考試卷(可打印)
- 一例阿爾茨海默病患者的護(hù)理查房
- 農(nóng)貿(mào)市場(chǎng)安全生產(chǎn)工作方案
- 咸陽(yáng)租房合同
- 《鋼筋保護(hù)層檢測(cè)》課件
- YJ-T 27-2024 應(yīng)急指揮通信保障能力建設(shè)規(guī)范
- 合伙人協(xié)議書決策機(jī)制
- 西藏畜牧獸醫(yī)知識(shí)培訓(xùn)課件
- 護(hù)理專業(yè)人才培養(yǎng)方案論證報(bào)告
- 我的家鄉(xiāng)武漢
- 眼鏡制造業(yè)灌膠機(jī)市場(chǎng)前景與機(jī)遇分析
評(píng)論
0/150
提交評(píng)論