版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
圖形操作第8章本章要點VisualBasic的坐標(biāo)系統(tǒng)繪圖屬性繪圖方法圖形處理與應(yīng)用
8.1VisualBasic的坐標(biāo)系統(tǒng)在VisualBasic中,每個對象定位于存放它的容器內(nèi),對象定位都要使用容器的坐標(biāo)系。例如,窗體處于屏幕(Screen)內(nèi),屏幕是窗體的容器。在窗體內(nèi)繪制控件,窗體就是控件的容器。如果在圖片框控件內(nèi)繪制圖形,該圖片框就是容器。容器內(nèi)的對象只能在容器界定的范圍內(nèi)變動。當(dāng)移動容器時,容器內(nèi)的對象也隨著一起移動,而且與容器的相對位置保持不變。
VB的每個容器對象都有一個坐標(biāo)系。構(gòu)成一個坐標(biāo)系,需要三個要素:坐標(biāo)原點、坐標(biāo)度量單位以及坐標(biāo)軸的長度與方向。
8.1.1標(biāo)準(zhǔn)坐標(biāo)系統(tǒng)
(2)ScaleLeft和ScaleTop屬性用于控制容器對象左邊和頂邊的坐標(biāo),根據(jù)這兩個屬性值可形成坐標(biāo)原點。無論采用哪一種坐標(biāo)度量單位,所有容器對象的ScaleLeft和ScaleTop屬性的默認(rèn)值均為0,即坐標(biāo)原點在對象的左上角。橫向向右為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屬性確定對象內(nèi)部水平方向和垂直方向的坐標(biāo)度量單位數(shù)。例如,設(shè)ScaleMode屬性值為5(即坐標(biāo)度量單位為英寸),如果ScaleWidth值為10,則表示該對象水平方向?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ū)別。
用戶可以改變對象的坐標(biāo)系統(tǒng),即自行定義坐標(biāo)系統(tǒng)的原點、坐標(biāo)軸的方向等,有以下兩種方法:
1.修改屬性值通過修改對象的ScaleLeft、ScaleTop、ScaleWidth和ScaleHeight四個屬性來設(shè)定自定義坐標(biāo)系統(tǒng):(1)按需要改變ScaleLeft,ScaleTop值后,坐標(biāo)系的X軸和Y軸按此值平移形成新的坐標(biāo)原點。(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)系最方便的方法,格式:[對象.]Scale[(xLeft,yTop)-(xRight,yBottom)]功能:在程序中自定義坐標(biāo)系。Scale后面若不帶參數(shù),則表示取消用戶自定義坐標(biāo)系,采用默認(rèn)坐標(biāo)系。其中:(xLeft,yTop)為容器控件的左上角坐標(biāo),(xRight,yBottom)為右下角坐標(biāo)。與屬性的對應(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方法自定義一個坐標(biāo)系統(tǒng),使坐標(biāo)原點(0,0)在窗體的中央位置,X軸向右為正,Y軸向上為正。對應(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通過當(dāng)前橫坐標(biāo)、縱坐標(biāo)的適當(dāng)偏移,輸出立體字效果。如圖所示。
8.2繪圖屬性
8.2.1當(dāng)前坐標(biāo)演示程序
1.線寬窗體、圖片框、打印機(jī)等的DrawWidth屬性用于設(shè)置容器內(nèi)所畫線的寬度或點的大小。其語法格式為:[對象.]DrawWidth[=<Size>]其中,<Size>為數(shù)值表達(dá)式,其范圍從1到32767,該值以像素作為度量單位,缺省值為1,即一個像素寬。如果不是使用繪圖方法,而是使用控件(如直線控件、形狀控件)繪圖,則通過BorderWidth屬性定義所畫圖形的線條寬度。
8.2.2線寬與線型
8.2繪圖屬性
2.線型窗體、圖片框、打印機(jī)等的DrawStyle屬性用于設(shè)置在這些對象上所畫線的形狀。各種線型僅當(dāng)DrawWidth屬性值為1時才能產(chǎn)生。當(dāng)DrawWidth值大于1且DrawStyle屬性值為1~4時,都只能產(chǎn)生實線效果。當(dāng)DrawWidth值大于l而Drawstyle值為6時,則所畫內(nèi)實線僅當(dāng)是封閉線時才起作用。如果使用控件(如直線控件、形狀控件)繪圖,則可以通過BorderStyle屬性給出所畫圖形的線條形狀。BorderStyle屬性的取值與DrawStyle屬性取值稍有不同,如表8-2所示。
8.2.2線寬與線型
8.2繪圖屬性
8.2.3填充與色彩
封閉圖形的填充方式由FillStyle和FillColor兩個屬性決定。FillStyle用于設(shè)置或返回Shape控件、Circle以及Line方法生成的封閉圖形的內(nèi)部填充樣式,取值為0~8(共有8種圖案)。FillColor指定內(nèi)部填充圖案的顏色,默認(rèn)的顏色與ForeColor相同,即VB默認(rèn)采用對象的前景色繪圖。在窗體設(shè)計階段設(shè)置顏色時,使用屬性窗口對應(yīng)屬性的“調(diào)色板”能夠可視化地設(shè)置當(dāng)前對象的顏色;在程序代碼中設(shè)置顏色(例如,使用賦值語句指定顏色)時,則指定顏色的方式有以下四種:
8.2繪圖屬性
8.2.3填充與色彩
(1)使用RGB函數(shù):RGB(<Red>,<Green>,<Blue>)函數(shù)由三個參數(shù)經(jīng)數(shù)學(xué)組合而產(chǎn)生一個Long類型的整數(shù)值,表示一個特定的顏色。(2)使用QBColor函數(shù):QBColor(<顏色值>)函數(shù)用一個整數(shù)值對應(yīng)RGB的常用顏色值,<顏色值>取值范圍是0~15,共可表示16種顏色。(3)使用顏色常量:VB定義了一些顏色符號常量,包括8種常用顏色和Windows控制面板使用的系統(tǒng)顏色。(4)直接使用顏色設(shè)置值:通常用十六進(jìn)制數(shù)(標(biāo)記符號為H)表示顏色值。8.2繪圖屬性
8.2.3填充與色彩
例8-6使用相關(guān)繪圖屬性和繪圖方法設(shè)計如圖8-6所示的窗體界面。其中窗體四角是顏色固定的色塊,另在窗體上每單擊一次鼠標(biāo)畫一個圓,其填充色和邊線樣式隨機(jī)變化。
8.2繪圖屬性
演示程序8.2.4圖形的重繪
1.AutoRedraw屬性該屬性用于確定圖片框或窗體中(用繪圖方法繪制)的圖形在覆蓋它的對象移走后是否重新顯示,它的值取True或False。注意,對于以圖標(biāo)、位圖及其它源文件形式加載的圖形,與AutoRedraw屬性設(shè)置值無關(guān),因為VisualBasic能保存并自動重繪這些圖形。只有在程序中用繪圖方法繪制的圖形及用print方法放置的文本才需要用AutoRedraw屬性。8.2繪圖屬性
8.2.4圖形的重繪
2.Paint事件Paint事件是在窗體或圖片框上的覆蓋窗口移開后,或者是在窗體加載、最小化、還原和最大化時被觸發(fā);使用Refresh方法(用于強(qiáng)制重繪一個窗體或控件的全部)時,也觸發(fā)Paint事件。因此,該事件可用于重繪圖片框或重繪窗體中用Circle、Line等方法繪制的圖形,使用時只需要將這些繪圖方法放在此事件過程中就可以了。Paint事件常用于在AutoRedraw屬性設(shè)置為False(默認(rèn))時,以恢復(fù)圖片框或窗體上被破壞的圖形或文本。
8.2繪圖屬性
8.2.4圖形的重繪
例8-7在窗體中畫一個米字形。當(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è)計慶賀新年的五彩粹紙效果。運(yùn)行界面如圖所示。
演示程序8.3.1Pset方法
8.3繪圖方法
例8-10設(shè)計一個簡單的畫圖程序,以鼠標(biāo)為畫筆在窗體上畫圖,并提供橡皮擦功能,以便擦除不需要的內(nèi)容。運(yùn)行界面如圖所示。
8.3繪圖方法
8.3.2Line方法
例8-11編寫程序,實現(xiàn)圖形處理中的“溶解”效果。運(yùn)行界面如圖所示。
8.3繪圖方法
8.3.2Line方法
演示程序
Circle方法可用于在指定容器對象內(nèi)畫圓、橢圓、圓弧、扇形等。格式:[對象名.]Circle[[Step](X,Y),半徑[,顏色]
[,起始角][,終止角][,長短軸比率]]]
功能:在由[對象名.]指定的容器內(nèi),在坐標(biāo)系中以(X,Y)為圓心畫圓、橢圓、圓弧或扇形。8.3繪圖方法
8.3.3Circle方法
注意:(1)(X,Y):為圓心坐標(biāo)。
(2)半徑:為圓的半徑。(3)[,起始角]和[,終止角]:可控制畫圓弧和扇形。當(dāng)起始角、終止角取值在0~2π時為圓弧,當(dāng)在起始角、終止角取值前加一負(fù)號時,畫出扇形。
(4)[,長短軸比率]:可控制畫圓還是橢圓,默認(rèn)值為1,畫圓。若要填充橢圓、圓的區(qū)域,則設(shè)置FillStyle為0(實心)與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'邊線的寬度為兩個象素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è)計一個窗體,利用Circle方法在同一圓心點畫兩組同心橢圓。程序運(yùn)行界面如圖所示。
演示程序8.3繪圖方法
8.3.3Circle方法
例8-13設(shè)計一個窗體,根據(jù)輸入的3個班的學(xué)生人數(shù),顯示各班人數(shù)所占比例的餅圖。程序運(yùn)行界面如圖所示。
演示程序8.3繪圖方法
8.3.3Circle方法
Point方法用于返回窗體、圖形框等容器上指定點的RGB顏色,其語法格式如下
[對象名.]Point(x,y)如果由(x,y)坐標(biāo)指定的點在對象外面,Point方法返回-1(即True)。8.3繪圖方法
8.3.4Point方法
例8-14用Point方法獲取一個區(qū)域的信息并使用PSet方法進(jìn)行仿真。運(yùn)行結(jié)果如圖所示。
例8-15設(shè)計一個窗體,實現(xiàn)畫圖程序中的“吸管”效果。運(yùn)行界面如圖所示。
8.3繪圖方法
8.3.4Point方法
演示程序
VisualBasic在構(gòu)造圖形時,可在三個不同的屏幕層次上放置控件或圖形的各組成部分。就視覺效果而言,最上層離用戶最近,而最下一層離用戶最遠(yuǎn)。
三個圖形層所放置的對象類型:
8.4圖形處理與應(yīng)用
8.4.1圖形層
層次對象類型最上層工具箱中除標(biāo)簽、線條、形狀外的控件對象中間層工具箱中標(biāo)簽、線條、形狀控件對象最下層由圖形方法所繪制的圖形
位于上層的對象會遮蓋下層相同位置上的任何對象,這跟繪制的前后順序無關(guān)。屬于同一層次的對象在發(fā)生層疊時,后繪制的對象會遮蓋先繪制的對象。
同一圖形層內(nèi)控件對象排列順序稱為Z序列。設(shè)計時,可以通過“格式”菜單中的“順序”命令調(diào)整Z序列;運(yùn)行時,可使用ZOrder方法將特定的對象調(diào)整到同一圖形層內(nèi)的前面或后面。ZOrder方法格式:對象.Zorder[位置]
8.4圖形處理與應(yīng)用
8.4.1圖形層
例如,圖形層特點的利用:
(1)在命令按鈕后面放置一個表面色彩為黑色的標(biāo)簽并適當(dāng)錯開,即可使命令按鈕具有懸浮效果。(2)添加兩個標(biāo)簽,顯示相同的文本,采用不同的前景色,背景風(fēng)格均置為透明,使之重疊并適當(dāng)錯開,有立體字效果
。8.4圖形處理與應(yīng)用
8.4.1圖形層
讓一系列圖片連續(xù)顯示,利用人眼的視覺暫留特性,可以形成動畫效果。程序設(shè)計時采用幀動畫原理,即通過一系列靜態(tài)圖,使之連續(xù)快速變化產(chǎn)生動畫效果,也可以通過Move方法改變圖形對象的Top及Left屬性來移動圖形。此外,在移動圖形的同時還可以改變圖形對象的Width、Height屬性值,形成相對運(yùn)動。動畫的速度采用定時器控制。
8.4.2簡單的動畫制作8.4圖形處理與應(yīng)用
例8-16把一組月亮圖案拷貝到工作目錄下,編寫VB程序模擬月相的變化。設(shè)計界面和運(yùn)行界面如圖所示。
8.4.2簡單的動畫制作8.4圖形處理與應(yīng)用
例8-17設(shè)計一個在窗體上滾動的小球,且窗體文字產(chǎn)生閃爍效果。運(yùn)行界面如圖所示。
演示程序8.4.2簡單的動畫制作8.4圖形處理與應(yīng)用
圖形處理的PaintPicture方法可從一個窗體或圖形框控件中向另一個對象復(fù)制一個矩形區(qū)域的像素。使用該方法,可以在窗體、圖片框和Printer對象上的任何地方繪制圖形,對圖形進(jìn)行復(fù)制、改變大小、重新定位及水平或垂直翻轉(zhuǎn)等操作。
8.4.3圖形的變換8.4圖形處理與應(yīng)用
PaintPicture方法的語法如下:<對象>.PaintPicturePicture,x1,y1,Width1,Height1,[x2],[y2],[Width2],[Height2]各參數(shù)
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2026學(xué)年統(tǒng)編版三年級上冊語文第七單元提高試卷(附參考答案)
- (新教材)2026年青島版八年級上冊數(shù)學(xué) 4.3 角的平分線 課件
- 護(hù)理之愛守護(hù)生命
- 2025年辦公空間租賃合同協(xié)議
- 多層次協(xié)同預(yù)測模型
- 基于護(hù)理信息系統(tǒng)的護(hù)士工作負(fù)擔(dān)變化分析
- 多動癥共病睡眠障礙關(guān)聯(lián)
- 培訓(xùn)行業(yè)政策解讀
- 2026 年中職酒店管理(客房服務(wù)技能)試題及答案
- 房產(chǎn)管理題庫及答案
- 2025年5G網(wǎng)絡(luò)的5G網(wǎng)絡(luò)技術(shù)標(biāo)準(zhǔn)
- 盆底康復(fù)進(jìn)修課件
- 羊絨紗線知識培訓(xùn)
- 鋼板租賃合同條款(2025版)
- 輻射性白內(nèi)障的發(fā)現(xiàn)與研究
- 珠海市產(chǎn)業(yè)和招商扶持政策匯編(2025年版)
- 國開機(jī)考 答案2人力資源管理2025-06-21
- 物理●山東卷丨2024年山東省普通高中學(xué)業(yè)水平等級考試物理試卷及答案
- 提升會計職業(yè)素養(yǎng)的試題及答案
- 電動吸盤出租合同協(xié)議
- 胃穿孔的相關(guān)試題及答案
評論
0/150
提交評論