第六章 高級圖形處理功能_第1頁
第六章 高級圖形處理功能_第2頁
第六章 高級圖形處理功能_第3頁
第六章 高級圖形處理功能_第4頁
第六章 高級圖形處理功能_第5頁
已閱讀5頁,還剩27頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第六章高級圖形處理功能目的:1、更深入地理解高層繪圖指令,從而可繪制出更精細、更生動、更個性的圖形;2、能利用低層圖形指令和圖形對象屬性開發(fā)專用繪圖函數(shù)。一、圖形對象與句柄

(一)句柄圖形體系句柄圖形(HandleGraphics)是一種面象對象的繪圖系統(tǒng)。該系統(tǒng)提供創(chuàng)建計算機圖形所必需的各種軟件。它所支持的指令,可直接創(chuàng)建線、文字、網(wǎng)線、面以及圖形用戶界面。第五章所介紹的各種MATLAB高層(High-level)圖形指令(如plot,mesh)都是以句柄圖形軟件為基礎(chǔ)寫成的。也正是這個原因,句柄圖形也被稱為低層(Low-level)圖形。圖形對象、對象句柄、句柄圖形樹結(jié)構(gòu)1、圖形對象把用于數(shù)據(jù)可視和界面制作的基本繪圖要素稱為句柄圖形對象(Handlegraphicsobject)。構(gòu)成MATLAB句柄圖形體系的13個圖形對象見P136/圖6-1。每個圖形對象可以被獨立地操作。在MATLAB中生成的每個具體圖形都由若干不同對象構(gòu)成。每個具體圖形不必包含全部對象,但每個圖形必須具備根對象(根屏幕)和圖形窗。2、對象句柄每個具體對象都有一個“與生俱來、終生不變”的獨特“身份(Identifier)”,即句柄(Handle)。句柄是存取圖形對象唯一規(guī)范識別符。不同對象的句柄不可能重復(fù)和混淆。每個計算機,根對象只有一個,即屏幕。它的句柄總是數(shù)字0。而圖形窗(FigureWindows)的句柄總是正整數(shù),它用來標(biāo)識圖形窗的序號。除以上兩種對象外,其余對象的句柄則是雙精度浮點數(shù)。注意:對根屏幕、圖形窗對象來說,數(shù)字可直接作為調(diào)用對象的句柄。但不要企圖通過直接輸入浮點數(shù),作為其他對象的句柄;這些對象的句柄只能由相關(guān)指令運作而得。3、句柄圖形樹結(jié)構(gòu)在句柄圖形體系中,各圖形對象并不平等,它們之間的關(guān)系可用P136/圖6-1的樹結(jié)構(gòu)層次表示。對象屬性1、屬性:所有對象都有一組定義和刻畫其外貌和性狀的屬性(Properties)。屬性由兩部分組成:屬性名和屬性值,即二元對(Property-Name,Property-Value)在創(chuàng)建或修改屬性的指令中,屬性名和屬性值總是成對出現(xiàn)。屬性名是英文詞組字符串。該英文詞組每個單詞的第一個字母大寫,而單詞間沒有空格,例如’LineStyle’,’ColorMap’等。在指令中援引屬性名時,為輸入方便,MATLAB采取了兩個措施:不分字母大小寫,都同樣識別;只要不引起歧義,屬性名不必寫全。比如’lines’就代表’LineStyle’.不同的屬性值將使對象具有不同的表現(xiàn)。2、缺省屬性在創(chuàng)建圖形對象時,MATLAB并不需要對每個屬性加以定義。若用戶不對屬性加以定義,MATLAB總會自動給對象的每個屬性賦予“廠家定義(Factory-defined)”的屬性值。若希望創(chuàng)建具有個性的圖形,就需要通過指令對某些屬性進行定義。屬性值的這種定義方式稱為“宗量”賦值方式。(二)圖形對象的操作除根屏幕外,所有圖形對象都由與之同名的指令創(chuàng)建。創(chuàng)建對象的低層指令(1)指令名功能調(diào)用格式舉例figure創(chuàng)建圖形窗h=figure(n)n為正整數(shù)。打開或創(chuàng)建第n號圖形窗axes創(chuàng)建軸h=axes(‘position’,[left,bottom,width,height])

定義坐標(biāo)盒的位置和尺寸line創(chuàng)建線h=line(x,y,z)繪制向量x,y,z確定的直線。如果不指定z,則在x-y平面上畫線surface創(chuàng)建面h=surface(x,y,z,c)x,y,z定義三維曲面,c是色彩矩陣。創(chuàng)建對象的低層指令(2)指令名功能調(diào)用格式舉例rectangle創(chuàng)建方h=rectangle(’position’,[x,y,w,h],’curvature’[xc,yc])x,y左下頂點坐標(biāo),w,h長方形的高和寬;xc,yc曲率patch創(chuàng)建塊h=patch(’faces’,fac,’vertices’,vert)

vert為頂點矩陣,fac為定義多邊形的頂點序號矩陣image創(chuàng)建象h=image(x)x為圖像數(shù)據(jù)矩陣text創(chuàng)建字h=text(x,y,’string’)x,y指定字符串string的標(biāo)注位置light創(chuàng)建光h=light(’position’,[100])

設(shè)置入射光的方向。它影響面、塊對象的渲染uicontrol創(chuàng)建用戶界面控件h=uicontrol(’property’,value)property/value指定界面的控件類型uimenu創(chuàng)建用戶界面菜單h=uimenu(’property’,value)property/value指定圖形窗口上方的菜單行式對象句柄的獲取方法要設(shè)置圖形對象屬性值,首先要知道該對象的句柄。1、基本方法從圖形創(chuàng)建指令獲得句柄追溯法獲取圖柄當(dāng)前對象句柄的獲取根據(jù)對象特性獲取句柄根據(jù)對象“諢名”獲取句柄2、句柄獲取示例從圖形創(chuàng)建指令獲得句柄所有高層或低層指令(在此用GraphicCommand表示)都能通過以下格式產(chǎn)生句柄:H_GC=GraphicCommand(…)

繪圖同時給出句柄的調(diào)用指令H_GC。追溯法獲取圖柄若一個對象的句柄已知,那么可用如下格式追溯獲得其“父”或“子”的句柄:H_pa=get(H_known,’Parent’)

獲取H_known句柄對象之“父”的句柄。H_ch=get(H_known,’Children’)

獲取H_known句柄對象之“子”的句柄。當(dāng)前對象句柄的獲取MATLAB有如下三個專用獲取圖柄的指令:前兩個是直接指令式;后一個必須與鼠標(biāo)配合使用。gcf 返回當(dāng)前圖形窗口的句柄gca 返回當(dāng)前軸的句柄gco 返回“被鼠標(biāo)最近點擊”的圖形對象的句柄根據(jù)對象特性獲取句柄利用對象特性搜索那對象句柄可以得到較高的搜索速度。具體指令如下:H=findobj(H_ori,PN,PV)

在H_ori指定對象上,尋找與屬性對 (PN,PV)匹配的對象句柄根據(jù)對象“諢名”獲取句柄可以通過’Tag’屬性,給對象一個“諢名”。此后,就可以通過“諢名”獲取該對象的句柄。設(shè)置“諢名”的兩個方法:創(chuàng)建時賦名,如subplot(3,2,4),plot(x,y,’Tag’,’A4’);用set賦名,如subplot(3,2,4),h=plot(x,y),set(h,’Tag’,’A4’)據(jù)諢名獲取對象句柄:如果屏幕上有多個圖形窗,且有的窗又有多個子圖,那么獲取帶“諢名”對象句柄的簡便指令是:hax=fidobj(0,’Tag’,’A4’)。(三)對象屬性的獲取和設(shè)置創(chuàng)建對象時設(shè)置屬性H_GC=GraphicCommand(……,PN,PV)

利用“屬性對”設(shè)置的繪圖指令H_GC=GraphicCommand(……,PS)

利用“構(gòu)架”進行屬性設(shè)置的繪圖指令get和set對象屬性的缺省設(shè)置和查詢屬性查詢和設(shè)置示例get和setget(H)

獲取H句柄對象所有屬性的當(dāng)前值get(H,PN) 獲取H句柄對象由PN所指定屬性的當(dāng)前值set(H)

顯示H句柄對象的所有可設(shè)置屬性名和全 部供選屬性值set(H,PN) 顯示H句柄對象PN指定屬性名的全部供選 屬性值set(H,PN,PV,…)設(shè)置H句柄對象的PN屬性名取PV

屬性值set(H,PS) 利用構(gòu)架數(shù)組設(shè)置H的屬性值對象屬性的缺省設(shè)置和查詢get(H,’DefaultObjectTypeObjectProperty’)

獲取缺省值set(H,’DefaultObjectTypeObjectProperty’,propertyValue)

設(shè)置“用戶定義”缺省值set(H,’DefaultObjectTypeObjectProperty’,’remove’)

刪除“用戶定義”缺省值二、三維圖形的精細控制

視點控制色彩控制照明和材質(zhì)處理(一)視點控制改變觀察點是獲得較好三維視覺效果的一個重要途徑。view([az,el])

通過方位角、俯視角設(shè)置視點view([vx,vy,vz])

通過直角坐標(biāo)設(shè)置視點說明:指令中,az是方位角(Azimuth),el是俯視角(Elevation)。它們的單位是“度”。vx,vy,vz是視點的直角坐標(biāo)。若繪制三維圖形時,不使用view指令,那么MATLAB將使用缺省的視點設(shè)置:az=-37.5°,el=30°。當(dāng)az=0°,el=90°時,圖形將以習(xí)慣的平面直角坐標(biāo)表現(xiàn)。MATLAB圖形窗可交互式調(diào)節(jié)視點。為獲得最佳視覺效果,用戶先通過鼠標(biāo)操作調(diào)節(jié)視點,然后再用指令view把相應(yīng)的試點加以固定。(二)色彩控制用色風(fēng)格colordef色圖colormap濃淡處理shading透明度控制

alpha用色風(fēng)格colordefcolordefoptions 對根屏幕上的所有子對象設(shè)置缺省值colordef(fig,options) 對圖形窗fig上的所有子對象設(shè)置缺省值h=colordef(‘new’,options) 對新圖形窗上的所有子對象設(shè) 置缺省值whitebg 使當(dāng)前圖形窗上“軸”的背景色在黑白間切換whitebg(fig) 使指定圖形窗上“軸”的背景色在黑白間切換whitebg(C) 使當(dāng)前圖形窗上“軸”的背景色變?yōu)橹付ǖ念伾f明:MATLAB默認(rèn)的“軸背景色”為white。Options的取值及缺省設(shè)置見下表:options軸背景色圖背景色軸標(biāo)色色圖畫線用色次序white白淡灰黑jet藍、深綠、紅、青、洋紅、黃、黑black黑黑白jet黃、洋紅、青、紅、淡綠、藍、淡灰色圖colormap

(P123)兩種基本著色技術(shù):變址色彩法(Indexedcoloring):先把每個數(shù)據(jù)點變換為色圖中的某索引號,使數(shù)據(jù)點在具體色圖中獲得該索引號所代表的一種顏色;然后再依據(jù)這些數(shù)據(jù)點顏色,由“濃淡處理(shading)”模式推出曲面上其他點的用色。真采法(Truecoloring):每個數(shù)據(jù)點直接用RGB三元組指定顏色。至于曲面其他點的色彩,與變址法一樣,按指定的“濃淡處理”模式算得。RGB三元組:一種色彩用[RGB]基色三元行數(shù)組表示。數(shù)組元素R、G、B在[0,1]區(qū)間取值,分別表示紅、綠、藍基色相對亮度。通過對R,G,B大小的設(shè)置,可調(diào)制出不同顏色。P124/表5-4給出一些常用顏色對應(yīng)的三元數(shù)組的具體取值。色圖矩陣和色圖(色彩映射表):P124/表5-5濃淡處理shading(P122)shadingoptions 圖形對象著色的濃淡處理說明:mesh,surf,pcolor,fill和fill3所創(chuàng)建圖形非數(shù)據(jù)點處的著色由shading指令決定。指令的選項options可取以下三中方式:flat

網(wǎng)線圖地謀整條線段,或曲面圖的某整個貼片都著一種顏色。顏色取自該線段兩端,或該貼片四頂點數(shù)據(jù)中下標(biāo)最小那點的顏色。interp

網(wǎng)線圖線段,或曲面圖貼片上各點的顏色由該線段兩端,或該貼片四頂點初的顏色經(jīng)線性插值而得。這種方法的用色較細膩,但最費時。faceted

在flat用色基礎(chǔ)上,再在貼片的四周勾畫黑色網(wǎng)線。這種方法對立體的表現(xiàn)力最強,因此MATLAB把它作為缺省設(shè)置。shading

是設(shè)置當(dāng)前軸上面對象的EdgeColor和FaceColor屬性的高層指令。例:三種濃淡處理方式比較

透明度控制

alphaalpha(v)

對面、塊、象三種圖形對象的透明度加以控制說明:v可以取0到1之間的數(shù)值。0表示完全不透明,1表示完全透明。本指令對mesh,surf,slice等高層指令都適用。例:半透明的表面圖

(三)照明和材質(zhì)處理燈光light照明模式lighting控制光效果的材質(zhì)指令material燈光lightlight(‘color’,option1,’style’,option2,’position’,option3)

燈光設(shè)置說明:在該指令使用前,圖形采用的是等強度各處相等的漫射光。一旦該指令被執(zhí)行,雖然光源本身并不出現(xiàn),但圖形上“軸”、“面”等子對象所有與光有關(guān)的屬性(如背景光、邊緣光)都被激活。假如該指令不包含任何輸入宗量,則采用缺省設(shè)置:白光、無窮遠、穿過[1,0,1]射向坐標(biāo)原點。任何一個輸入宗量對都可缺省,此時采用缺省設(shè)置。option1

可采用RGB三元組或相應(yīng)的色彩字符,如[100]或‘r’都代表紅光。option2

有兩個取值:‘infinite’和‘local’。前者表示無窮遠光,后者為近光。option3

總為直角坐標(biāo)的三元組形式。對遠光,它表示光線穿過該點射向原點;對近光,它表示光源所在位置。照明模式lightinglightingoptions

設(shè)置照明模式說明:該指令只有在light指令執(zhí)行后才起作用。options有以下四種取值:flat

射入光均勻灑落在圖象對象的每個面上, 主要與facted配用。它是缺省模式。gouraund 先對頂點顏色插補,再對頂點勾畫的面色 進行插補。用于曲面表現(xiàn)。phong 對頂點處法線插值,再計算個像素的反光。 表現(xiàn)效果最好,但費時較多。

溫馨提示

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

評論

0/150

提交評論