第六章圖形操作_第1頁
第六章圖形操作_第2頁
第六章圖形操作_第3頁
第六章圖形操作_第4頁
第六章圖形操作_第5頁
已閱讀5頁,還剩17頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第六章圖形操作

6.1圖形操作基礎(chǔ)

6.2繪圖屬性

6.3圖形控件

6.4圖形方法

*6.5應(yīng)用6.1

圖形操作基礎(chǔ)6.1.1坐標系統(tǒng)每個容器都有一個坐標系,構(gòu)成一個坐標系,需要三個要素:坐標原點、坐標度量單位、坐標軸的長度與方向。坐標度量單位由容器對象的ScaleMode屬性決定。缺省時為Twip。每英寸1440個Twip,20個Twip為一磅。原點HeightScaleHeight6.1.2自行定義坐標系方法一:通過ScaleTop,ScaleLeft,ScaleWidth和ScaleHeight屬性實現(xiàn)。(ScaleTop,ScaleLeft)例6.1

在Form_Paint

事件中定義窗體的坐標系。方法二:采用Scale方法來設(shè)置坐標系: [對象.]Scale[(xLeft,yTop)-(xRight,yBotton)]例如,F(xiàn)orm1.Scale(-200,250)-(300,-150)將建立和例6.1一樣的坐標系??稍诔绦蛑惺褂肧cale方法改變坐標系統(tǒng)。當Scale方法不帶參數(shù)時,取消用戶定義的坐標系,采用缺省坐標系。改變坐標系后產(chǎn)生的影響:(xLeft,yTop)(xRight,yBotton)例6.1aLine(0,0)-(1000,1000)在不同坐標系的效果例6.1b

控件對象在坐標系內(nèi)與X軸和Y軸的位置保持相對不變利用圖形層的特點,實現(xiàn)懸浮效果。在命令按鈕后放置一個表面色彩為黑色的標簽即。同一圖形層內(nèi)控件對象排列順序稱為Z序列。Zorder方法的語法為:對象.Zorder[position]position=0表示該控件被定位于Z序列的前面position=1表示該控件被定位于Z序列的后面例Zorder方法的使用。6.1.3圖形層6.2繪圖屬性6.2.1當前坐標

CurrentX,CurrentY屬性給出窗體或圖形框或打印機在繪圖時的當前坐標。

這兩個屬性在設(shè)計階段不能使用。例6.2

利用CurrentX,CurrentY屬性在窗體上輸出立體字效果。6.2.2線寬與線型窗體、圖形框或打印機的DrawWidth屬性給出這些對象上所畫線的寬度或點的大小。DrawWidth屬性以像素為單位來度量,最小值為1。

例6.3

用DrawWidth屬性改變直線寬度。窗體或圖形框或打印機的DrawStyle屬性給出這些對象上所畫線的形狀。6.2.3填充與色彩

VisualBasic默認采用對象的前景色(ForeColor屬性)繪圖,也可以通過以下顏色函數(shù)指定色彩。1.

RGB(紅,綠,藍)函數(shù)紅、綠、藍三基色使用0—255之間的整數(shù)。2.

QBColor(顏色碼)顏色碼使用0—15之間的整數(shù)6.3圖形控件6.3.1PictureBox(圖形框)主要作用:顯示圖片、也可作為其他控件的容器。裝入圖形:圖形框?qū)ο?Picture=LoadPicture(“圖形文件名”)刪除圖形:圖形框?qū)ο?Picture=LoadPicture()Autosize屬性設(shè)置為True時,圖形框能自動調(diào)整大小與顯示的圖片匹配例6.4

顏色的漸變過程。6.3.2Image(圖像框)圖像框比圖形框占用更少的內(nèi)存快。圖像框內(nèi)不能保存其他控件。Stretch屬性=False,圖像框可自動改變大小以適應(yīng)其中的圖形。Stretch屬性=True,圖形可自動調(diào)整尺寸以適應(yīng)圖像框的大小。例6.5

圖形框Autosize屬性與圖像框的Stretch屬性對加載圖形的影響。

SavePicture對象名.屬性,文件名把繪制或裝在窗體、圖形框和圖像框內(nèi)的圖形保存到Bmp格式文件內(nèi)。6.3.3Line(畫線工具)6.3.4Shape(形狀)例6.6例6.76.4圖形方法6.4.1Line方法畫直線或矩形: [對象.]Line[[Step](x1,y1)]-(x2,y2)[,顏色][,B[F]]其中:對象可以是窗體或圖形框。(x1,y1),(x2,y2)為線段的起終點坐標或矩形的左上角右下坐標。關(guān)鍵字B表示畫矩形,關(guān)鍵字F表示用畫矩形的顏色來填充矩形。

例6.8

用Line方法在一個窗體上畫坐標軸與坐標刻度。

例6.9用Line方法在一個窗體上畫隨機射線。6.4.2Circle方法Circle方法用于畫圓、橢圓、圓弧和扇形。6.4.3Pset方法Pset方法用于畫點:[對象.]Pset[Step](x,y)[,顏色]參數(shù)(x,y)為所畫點的坐標,關(guān)鍵字Step表示采用當前作圖位置的相對值。

例6.10

本例用Pset方法繪制阿基米德螺線6.4.4Point方法Point方法用于返回指定點的RGB顏色,其語法格式如下: [對象.]Point(x,y)

其中參數(shù)對象與(x,y)的意義與前述相同。

例6.11

用Point方法獲取一個區(qū)域的信息。利用例6.11的處理方法可使圖片產(chǎn)生朦朧的效果。6.5應(yīng)用6.5.1幾何圖形繪制利用Line方法和Circle方法及DrawWidth、DrawStyle和DrawMode屬性。

例6.12

用Circle方法在窗體上繪制由圓環(huán)構(gòu)成的藝術(shù)圖案。算法:等分半徑為r的圓周為n份,以等分點為圓心,半徑r1繪制n個圓。

例6.13為了能繪制任意區(qū)間[a,b]上函數(shù)f(x)積分面積圖,可在窗體上放置一個圖形框和兩個文本框。文本框用于指定積分上下限的值,圖形框用于繪圖。根據(jù)區(qū)間[a,b]的值設(shè)置圖形框的左上角坐標為(a-1,bb+1),右下角坐標為(b+1,-1)。將區(qū)間[a,b]等分為n份,在每一等分點i上,用Line方法連線到(i,i*i)。6.5.2簡單動畫設(shè)計

動畫:有計劃地移動一個對象包括改變對象的形狀和尺寸。編程時可以采用幀動畫原理,即通過一系列靜態(tài)圖輔之以連續(xù)快速變化產(chǎn)生動畫效果,也可以通過Move方法改變圖形對象的Top及Left屬性來移動圖形。動畫的速度使用時鐘控制。例6.14

通過改變圖形形狀演示一個陀螺在圖形框內(nèi)轉(zhuǎn)動。例6.15演示地球圖標的轉(zhuǎn)動,在轉(zhuǎn)動時同時使地球圖標在窗體內(nèi)移動,并變化地球圖標的尺寸。(用PictureClip控件來存放一組圖片)6.5.3圖形漫游滾動圖形通過滾動條的滑塊移動,只要設(shè)置圖形框的Left或Top為滑塊當前值的負數(shù),就可形成圖形相對移動。例6.16

本例在窗體內(nèi)顯示一幅地圖,移動滾動條漫游地圖。6.5.4圖形處理技術(shù)1.操作象素通過PaintPicture方法訪問內(nèi)置在操作系統(tǒng)中的BitBlt服務(wù)程序。

dpic.PaintPicturespic,dx,dy,dw,dh,sx,sy,sw,sh,rop其中: 參數(shù)dpic為目標圖形對象,spic為傳送源,

dx,dy是傳送目標矩形區(qū)域左上角坐標(目標控件內(nèi)任一位置)。

dw,dh是目標形矩形區(qū)域的寬和高。

sx,sy是要傳送圖形矩形區(qū)域左上角坐標。

sw,sh是要傳送圖形矩形區(qū)域的大小。

rop指定傳送的象素與目標中現(xiàn)有的象素組合模式(如表所示)。傳送源目標PaintPicture方法(sx,sy)swdpic.PaintPicturespic,dx,dy,dw,dh,sx,sy,sw,sh,ropdw,dhsw,sh至少8個Twip(dx,dy)dwdhsh 復(fù)制圖形:設(shè)置目標區(qū)域左上角坐標和大小與源矩形區(qū)域相同。 翻轉(zhuǎn)圖形:只需改變坐標系,設(shè)置圖形寬為負數(shù),則水平翻轉(zhuǎn)圖形;圖形高度為負數(shù),則上下翻轉(zhuǎn)圖形;如果寬度和高度都為負數(shù),則兩個方向翻轉(zhuǎn)圖形。 放大圖形:改變目標圖形的寬度和高度。 旋轉(zhuǎn)圖形:要需要對原始圖片按行和列的順序或按列和行的順序掃描象素點,然后在目標圖形區(qū)顛倒行和列的順序復(fù)制象素點。例6.17

PaintPicture方法翻轉(zhuǎn)放大位圖。例6.17a

本例使用PaintPicture方法實現(xiàn)百葉窗效果。2使用DrawMode屬性繪制圖形DrawMode屬性可以將新象素與原有象素用不同的方法組合。兩次Xor運算恢復(fù)原有象素。例6.18

用鼠標選定圖形中的區(qū)域復(fù)制到指定的圖片框。例6.18a

在Xor運算符下圖形疊加的效果。6.5.5改變窗體對象外觀通過調(diào)用Windows的API函數(shù)可改變窗體的外觀形狀。VB應(yīng)用程序要訪問API函數(shù),必須在VB應(yīng)用程序中用Declare語句將API函數(shù)聲明為外部過程。Declare語句將API函數(shù)聲明為外部過程VisualBasic應(yīng)用程序訪問返回執(zhí)行VB程序組中的API文本瀏覽器,啟動API函數(shù)查看工具。單擊“文件|加載文本文件”命令,裝入Win32api.Txt文件。通過“工程/添加模塊”在當前工程內(nèi)加入一個BAS模塊文件。添加指定的API函數(shù)到選定項框中,并將函數(shù)聲明復(fù)制到剪貼板。將剪貼板中的內(nèi)容粘貼到BAS模塊文件中。將API函數(shù)聲明為外部過程,操作流程如下:API文本瀏覽器應(yīng)用程序文件/加載文本文件1。選擇信息類型2。選定3。4。送剪貼板選定API函數(shù)復(fù)制到剪貼板例6.19

建立一個橢圓形狀的窗體。API函數(shù)CreateEllipticRgn建立橢圓外形區(qū)域,SetWindowRgn顯示該區(qū)域。SetWindowRgn函數(shù)參數(shù)說明:hWnd窗口句柄,hRgn為窗口形狀,bRedraw圖形重繪控制,為一邏輯值。句柄(Handle)可看作一個對象的指針,通過它可訪問該對象??赏ㄟ^API函數(shù)或?qū)ο蟮膶傩苑祷鼐浔J褂肁PI的區(qū)域設(shè)置函數(shù)不僅可以改變窗體外觀,也可以改變控件外觀。CreateEllipticRgn函數(shù)參數(shù)說明:坐標參數(shù)采用象數(shù)值。實際顯示的窗體區(qū)域由窗體的Height、Width屬性確定。需要使用ScaleX和ScaleY方法對窗體的度量單位進行

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論