版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第六章高級(jí)圖形處理功能目的:1、更深入地理解高層繪圖指令,從而可繪制出更精細(xì)、更生動(dòng)、更個(gè)性的圖形;2、能利用低層圖形指令和圖形對(duì)象屬性開(kāi)發(fā)專用繪圖函數(shù)。一、圖形對(duì)象與句柄
(一)句柄圖形體系句柄圖形(HandleGraphics)是一種面象對(duì)象的繪圖系統(tǒng)。該系統(tǒng)提供創(chuàng)建計(jì)算機(jī)圖形所必需的各種軟件。它所支持的指令,可直接創(chuàng)建線、文字、網(wǎng)線、面以及圖形用戶界面。第五章所介紹的各種MATLAB高層(High-level)圖形指令(如plot,mesh)都是以句柄圖形軟件為基礎(chǔ)寫成的。也正是這個(gè)原因,句柄圖形也被稱為低層(Low-level)圖形。圖形對(duì)象、對(duì)象句柄、句柄圖形樹(shù)結(jié)構(gòu)1、圖形對(duì)象把用于數(shù)據(jù)可視和界面制作的基本繪圖要素稱為句柄圖形對(duì)象(Handlegraphicsobject)。構(gòu)成MATLAB句柄圖形體系的13個(gè)圖形對(duì)象見(jiàn)P136/圖6-1。每個(gè)圖形對(duì)象可以被獨(dú)立地操作。在MATLAB中生成的每個(gè)具體圖形都由若干不同對(duì)象構(gòu)成。每個(gè)具體圖形不必包含全部對(duì)象,但每個(gè)圖形必須具備根對(duì)象(根屏幕)和圖形窗。2、對(duì)象句柄每個(gè)具體對(duì)象都有一個(gè)“與生俱來(lái)、終生不變”的獨(dú)特“身份(Identifier)”,即句柄(Handle)。句柄是存取圖形對(duì)象唯一規(guī)范識(shí)別符。不同對(duì)象的句柄不可能重復(fù)和混淆。每個(gè)計(jì)算機(jī),根對(duì)象只有一個(gè),即屏幕。它的句柄總是數(shù)字0。而圖形窗(FigureWindows)的句柄總是正整數(shù),它用來(lái)標(biāo)識(shí)圖形窗的序號(hào)。除以上兩種對(duì)象外,其余對(duì)象的句柄則是雙精度浮點(diǎn)數(shù)。注意:對(duì)根屏幕、圖形窗對(duì)象來(lái)說(shuō),數(shù)字可直接作為調(diào)用對(duì)象的句柄。但不要企圖通過(guò)直接輸入浮點(diǎn)數(shù),作為其他對(duì)象的句柄;這些對(duì)象的句柄只能由相關(guān)指令運(yùn)作而得。3、句柄圖形樹(shù)結(jié)構(gòu)在句柄圖形體系中,各圖形對(duì)象并不平等,它們之間的關(guān)系可用P136/圖6-1的樹(shù)結(jié)構(gòu)層次表示。對(duì)象屬性1、屬性:所有對(duì)象都有一組定義和刻畫其外貌和性狀的屬性(Properties)。屬性由兩部分組成:屬性名和屬性值,即二元對(duì)(Property-Name,Property-Value)在創(chuàng)建或修改屬性的指令中,屬性名和屬性值總是成對(duì)出現(xiàn)。屬性名是英文詞組字符串。該英文詞組每個(gè)單詞的第一個(gè)字母大寫,而單詞間沒(méi)有空格,例如’LineStyle’,’ColorMap’等。在指令中援引屬性名時(shí),為輸入方便,MATLAB采取了兩個(gè)措施:不分字母大小寫,都同樣識(shí)別;只要不引起歧義,屬性名不必寫全。比如’lines’就代表’LineStyle’.不同的屬性值將使對(duì)象具有不同的表現(xiàn)。2、缺省屬性在創(chuàng)建圖形對(duì)象時(shí),MATLAB并不需要對(duì)每個(gè)屬性加以定義。若用戶不對(duì)屬性加以定義,MATLAB總會(huì)自動(dòng)給對(duì)象的每個(gè)屬性賦予“廠家定義(Factory-defined)”的屬性值。若希望創(chuàng)建具有個(gè)性的圖形,就需要通過(guò)指令對(duì)某些屬性進(jìn)行定義。屬性值的這種定義方式稱為“宗量”賦值方式。(二)圖形對(duì)象的操作除根屏幕外,所有圖形對(duì)象都由與之同名的指令創(chuàng)建。創(chuàng)建對(duì)象的低層指令(1)指令名功能調(diào)用格式舉例figure創(chuàng)建圖形窗h=figure(n)n為正整數(shù)。打開(kāi)或創(chuàng)建第n號(hào)圖形窗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)建對(duì)象的低層指令(2)指令名功能調(diào)用格式舉例rectangle創(chuàng)建方h=rectangle(’position’,[x,y,w,h],’curvature’[xc,yc])x,y左下頂點(diǎn)坐標(biāo),w,h長(zhǎng)方形的高和寬;xc,yc曲率patch創(chuàng)建塊h=patch(’faces’,fac,’vertices’,vert)
vert為頂點(diǎn)矩陣,fac為定義多邊形的頂點(diǎn)序號(hào)矩陣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è)置入射光的方向。它影響面、塊對(duì)象的渲染uicontrol創(chuàng)建用戶界面控件h=uicontrol(’property’,value)property/value指定界面的控件類型uimenu創(chuàng)建用戶界面菜單h=uimenu(’property’,value)property/value指定圖形窗口上方的菜單行式對(duì)象句柄的獲取方法要設(shè)置圖形對(duì)象屬性值,首先要知道該對(duì)象的句柄。1、基本方法從圖形創(chuàng)建指令獲得句柄追溯法獲取圖柄當(dāng)前對(duì)象句柄的獲取根據(jù)對(duì)象特性獲取句柄根據(jù)對(duì)象“諢名”獲取句柄2、句柄獲取示例從圖形創(chuàng)建指令獲得句柄所有高層或低層指令(在此用GraphicCommand表示)都能通過(guò)以下格式產(chǎn)生句柄:H_GC=GraphicCommand(…)
繪圖同時(shí)給出句柄的調(diào)用指令H_GC。追溯法獲取圖柄若一個(gè)對(duì)象的句柄已知,那么可用如下格式追溯獲得其“父”或“子”的句柄:H_pa=get(H_known,’Parent’)
獲取H_known句柄對(duì)象之“父”的句柄。H_ch=get(H_known,’Children’)
獲取H_known句柄對(duì)象之“子”的句柄。當(dāng)前對(duì)象句柄的獲取MATLAB有如下三個(gè)專用獲取圖柄的指令:前兩個(gè)是直接指令式;后一個(gè)必須與鼠標(biāo)配合使用。gcf 返回當(dāng)前圖形窗口的句柄gca 返回當(dāng)前軸的句柄gco 返回“被鼠標(biāo)最近點(diǎn)擊”的圖形對(duì)象的句柄根據(jù)對(duì)象特性獲取句柄利用對(duì)象特性搜索那對(duì)象句柄可以得到較高的搜索速度。具體指令如下:H=findobj(H_ori,PN,PV)
在H_ori指定對(duì)象上,尋找與屬性對(duì) (PN,PV)匹配的對(duì)象句柄根據(jù)對(duì)象“諢名”獲取句柄可以通過(guò)’Tag’屬性,給對(duì)象一個(gè)“諢名”。此后,就可以通過(guò)“諢名”獲取該對(duì)象的句柄。設(shè)置“諢名”的兩個(gè)方法:創(chuàng)建時(shí)賦名,如subplot(3,2,4),plot(x,y,’Tag’,’A4’);用set賦名,如subplot(3,2,4),h=plot(x,y),set(h,’Tag’,’A4’)據(jù)諢名獲取對(duì)象句柄:如果屏幕上有多個(gè)圖形窗,且有的窗又有多個(gè)子圖,那么獲取帶“諢名”對(duì)象句柄的簡(jiǎn)便指令是:hax=fidobj(0,’Tag’,’A4’)。(三)對(duì)象屬性的獲取和設(shè)置創(chuàng)建對(duì)象時(shí)設(shè)置屬性H_GC=GraphicCommand(……,PN,PV)
利用“屬性對(duì)”設(shè)置的繪圖指令H_GC=GraphicCommand(……,PS)
利用“構(gòu)架”進(jìn)行屬性設(shè)置的繪圖指令get和set對(duì)象屬性的缺省設(shè)置和查詢屬性查詢和設(shè)置示例get和setget(H)
獲取H句柄對(duì)象所有屬性的當(dāng)前值get(H,PN) 獲取H句柄對(duì)象由PN所指定屬性的當(dāng)前值set(H)
顯示H句柄對(duì)象的所有可設(shè)置屬性名和全 部供選屬性值set(H,PN) 顯示H句柄對(duì)象PN指定屬性名的全部供選 屬性值set(H,PN,PV,…)設(shè)置H句柄對(duì)象的PN屬性名取PV
屬性值set(H,PS) 利用構(gòu)架數(shù)組設(shè)置H的屬性值對(duì)象屬性的缺省設(shè)置和查詢get(H,’DefaultObjectTypeObjectProperty’)
獲取缺省值set(H,’DefaultObjectTypeObjectProperty’,propertyValue)
設(shè)置“用戶定義”缺省值set(H,’DefaultObjectTypeObjectProperty’,’remove’)
刪除“用戶定義”缺省值二、三維圖形的精細(xì)控制
視點(diǎn)控制色彩控制照明和材質(zhì)處理(一)視點(diǎn)控制改變觀察點(diǎn)是獲得較好三維視覺(jué)效果的一個(gè)重要途徑。view([az,el])
通過(guò)方位角、俯視角設(shè)置視點(diǎn)view([vx,vy,vz])
通過(guò)直角坐標(biāo)設(shè)置視點(diǎn)說(shuō)明:指令中,az是方位角(Azimuth),el是俯視角(Elevation)。它們的單位是“度”。vx,vy,vz是視點(diǎn)的直角坐標(biāo)。若繪制三維圖形時(shí),不使用view指令,那么MATLAB將使用缺省的視點(diǎn)設(shè)置:az=-37.5°,el=30°。當(dāng)az=0°,el=90°時(shí),圖形將以習(xí)慣的平面直角坐標(biāo)表現(xiàn)。MATLAB圖形窗可交互式調(diào)節(jié)視點(diǎn)。為獲得最佳視覺(jué)效果,用戶先通過(guò)鼠標(biāo)操作調(diào)節(jié)視點(diǎn),然后再用指令view把相應(yīng)的試點(diǎn)加以固定。(二)色彩控制用色風(fēng)格colordef色圖colormap濃淡處理shading透明度控制
alpha用色風(fēng)格colordefcolordefoptions 對(duì)根屏幕上的所有子對(duì)象設(shè)置缺省值colordef(fig,options) 對(duì)圖形窗fig上的所有子對(duì)象設(shè)置缺省值h=colordef(‘new’,options) 對(duì)新圖形窗上的所有子對(duì)象設(shè) 置缺省值whitebg 使當(dāng)前圖形窗上“軸”的背景色在黑白間切換whitebg(fig) 使指定圖形窗上“軸”的背景色在黑白間切換whitebg(C) 使當(dāng)前圖形窗上“軸”的背景色變?yōu)橹付ǖ念伾f(shuō)明:MATLAB默認(rèn)的“軸背景色”為white。Options的取值及缺省設(shè)置見(jiàn)下表:options軸背景色圖背景色軸標(biāo)色色圖畫線用色次序white白淡灰黑jet藍(lán)、深綠、紅、青、洋紅、黃、黑black黑黑白jet黃、洋紅、青、紅、淡綠、藍(lán)、淡灰色圖colormap
(P123)兩種基本著色技術(shù):變址色彩法(Indexedcoloring):先把每個(gè)數(shù)據(jù)點(diǎn)變換為色圖中的某索引號(hào),使數(shù)據(jù)點(diǎn)在具體色圖中獲得該索引號(hào)所代表的一種顏色;然后再依據(jù)這些數(shù)據(jù)點(diǎn)顏色,由“濃淡處理(shading)”模式推出曲面上其他點(diǎn)的用色。真采法(Truecoloring):每個(gè)數(shù)據(jù)點(diǎn)直接用RGB三元組指定顏色。至于曲面其他點(diǎn)的色彩,與變址法一樣,按指定的“濃淡處理”模式算得。RGB三元組:一種色彩用[RGB]基色三元行數(shù)組表示。數(shù)組元素R、G、B在[0,1]區(qū)間取值,分別表示紅、綠、藍(lán)基色相對(duì)亮度。通過(guò)對(duì)R,G,B大小的設(shè)置,可調(diào)制出不同顏色。P124/表5-4給出一些常用顏色對(duì)應(yīng)的三元數(shù)組的具體取值。色圖矩陣和色圖(色彩映射表):P124/表5-5濃淡處理shading(P122)shadingoptions 圖形對(duì)象著色的濃淡處理說(shuō)明:mesh,surf,pcolor,fill和fill3所創(chuàng)建圖形非數(shù)據(jù)點(diǎn)處的著色由shading指令決定。指令的選項(xiàng)options可取以下三中方式:flat
網(wǎng)線圖地謀整條線段,或曲面圖的某整個(gè)貼片都著一種顏色。顏色取自該線段兩端,或該貼片四頂點(diǎn)數(shù)據(jù)中下標(biāo)最小那點(diǎn)的顏色。interp
網(wǎng)線圖線段,或曲面圖貼片上各點(diǎn)的顏色由該線段兩端,或該貼片四頂點(diǎn)初的顏色經(jīng)線性插值而得。這種方法的用色較細(xì)膩,但最費(fèi)時(shí)。faceted
在flat用色基礎(chǔ)上,再在貼片的四周勾畫黑色網(wǎng)線。這種方法對(duì)立體的表現(xiàn)力最強(qiáng),因此MATLAB把它作為缺省設(shè)置。shading
是設(shè)置當(dāng)前軸上面對(duì)象的EdgeColor和FaceColor屬性的高層指令。例:三種濃淡處理方式比較
透明度控制
alphaalpha(v)
對(duì)面、塊、象三種圖形對(duì)象的透明度加以控制說(shuō)明:v可以取0到1之間的數(shù)值。0表示完全不透明,1表示完全透明。本指令對(duì)mesh,surf,slice等高層指令都適用。例:半透明的表面圖
(三)照明和材質(zhì)處理燈光light照明模式lighting控制光效果的材質(zhì)指令material燈光lightlight(‘color’,option1,’style’,option2,’position’,option3)
燈光設(shè)置說(shuō)明:在該指令使用前,圖形采用的是等強(qiáng)度各處相等的漫射光。一旦該指令被執(zhí)行,雖然光源本身并不出現(xiàn),但圖形上“軸”、“面”等子對(duì)象所有與光有關(guān)的屬性(如背景光、邊緣光)都被激活。假如該指令不包含任何輸入宗量,則采用缺省設(shè)置:白光、無(wú)窮遠(yuǎn)、穿過(guò)[1,0,1]射向坐標(biāo)原點(diǎn)。任何一個(gè)輸入宗量對(duì)都可缺省,此時(shí)采用缺省設(shè)置。option1
可采用RGB三元組或相應(yīng)的色彩字符,如[100]或‘r’都代表紅光。option2
有兩個(gè)取值:‘infinite’和‘local’。前者表示無(wú)窮遠(yuǎn)光,后者為近光。option3
總為直角坐標(biāo)的三元組形式。對(duì)遠(yuǎn)光,它表示光線穿過(guò)該點(diǎn)射向原點(diǎn);對(duì)近光,它表示光源所在位置。照明模式lightinglightingoptions
設(shè)置照明模式說(shuō)明:該指令只有在light指令執(zhí)行后才起作用。options有以下四種取值:flat
射入光均勻?yàn)⒙湓趫D象對(duì)象的每個(gè)面上, 主要與facted配用。它是缺省模式。gouraund 先對(duì)頂點(diǎn)顏色插補(bǔ),再對(duì)頂點(diǎn)勾畫的面色 進(jìn)行插補(bǔ)。用于曲面表現(xiàn)。phong 對(duì)頂點(diǎn)處法線插值,再計(jì)算個(gè)像素的反光。 表現(xiàn)效果最好,但費(fèi)時(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度員工宿舍租賃及物業(yè)服務(wù)優(yōu)化合同3篇
- 二零二五年度農(nóng)莊租賃與農(nóng)業(yè)科技示范合同3篇
- 2025年度消防系統(tǒng)電氣線路改造合同協(xié)議書(shū)2篇
- 2025年度汽車典當(dāng)交易合同范本3篇
- 2024年中國(guó)燈飾鏡市場(chǎng)調(diào)查研究報(bào)告
- 2025年度林業(yè)資源產(chǎn)權(quán)交易承包合同3篇
- 2024年中國(guó)溶劑稀釋型環(huán)氧樹(shù)脂市場(chǎng)調(diào)查研究報(bào)告
- 2024年中國(guó)混濁劑市場(chǎng)調(diào)查研究報(bào)告
- 2025年度湖南省苗木市場(chǎng)價(jià)格指數(shù)發(fā)布合同3篇
- 2024年吧臺(tái)項(xiàng)目可行性研究報(bào)告
- 美術(shù)年終總結(jié)匯報(bào)
- 數(shù)字孿生技術(shù)與MES系統(tǒng)的融合
- 人才梯隊(duì)(人才庫(kù)、人才盤點(diǎn))建設(shè)方案
- 廣西柳州市2023-2024學(xué)年四年級(jí)上學(xué)期期末考試語(yǔ)文試卷
- 《芯片制造工藝》課件
- 中山大學(xué)研究生中特考試大題
- 手術(shù)室護(hù)理實(shí)踐指南術(shù)中低體溫預(yù)防
- 鋼管混凝土柱計(jì)算
- 四川省成都市2022-2023學(xué)年六年級(jí)上學(xué)期語(yǔ)文期末考試試卷(含答案)5
- 違規(guī)建筑綜合整頓行動(dòng)方案(二篇)
- 酒店明住宿清單(水單)
評(píng)論
0/150
提交評(píng)論