圖形操作課件_第1頁(yè)
圖形操作課件_第2頁(yè)
圖形操作課件_第3頁(yè)
圖形操作課件_第4頁(yè)
圖形操作課件_第5頁(yè)
已閱讀5頁(yè),還剩45頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論