資源描述:
《第六講高級圖形處理功能ppt課件.ppt》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、6.1圖形對象與句柄6.3體積可視化6.4圖形窗口的功能及設(shè)置6.5其他圖形處理技術(shù)第6章高級圖形處理功能內(nèi)容提要:1高層繪圖與底層繪圖的區(qū)別高層繪圖函數(shù)——是對整個圖形進(jìn)行操作的,圖形每一部分的屬性都是按缺省方式設(shè)置的,充分體現(xiàn)了matlab語言的實(shí)用性。底層繪圖函數(shù)——可以定制圖形,對圖形的每一部分進(jìn)行控制,用戶可以用來開發(fā)用戶界面以及各專業(yè)的專用圖形。充分體現(xiàn)了matlab語言的開發(fā)性26.1圖形對象與句柄3圖形對象圖形對象是圖形系統(tǒng)中最基本、最底層的單元窗口對象線對象軸對象4Root(根屏幕)F
2、igure(圖形窗口)Axes(坐標(biāo)軸)Uicontrol(控件)Uimenu(菜單)Uicontextmenu(對象菜單)light(光源)image(圖像)line(線)patch(塊)rectangle(矩形)surface(面)text(文本)父對象子對象5各層次圖形對象是相互關(guān)聯(lián)的,一般要先創(chuàng)建父對象,再創(chuàng)建子對象。創(chuàng)建圖形對象的底層函數(shù)figure??創(chuàng)建圖形窗口uicontrol??圖形界面控制格式:h=uicontrol(‘property’,value)uimenu??創(chuàng)建用戶界面菜單
3、格式:h=uimenu(‘property’,value)axes??創(chuàng)建軸對象格式:h=axes(‘position’,[left,bottomwidth,height])6line??創(chuàng)建線對象h=line(x,y,z)patch??創(chuàng)建塊對象h=patch(x,y,z,c)x,y,z定義多邊形,c確定填充顏色。surface??創(chuàng)建面對象h=surface(x,y,z,c)x,y,z三維曲面坐標(biāo),c顏色矩陣。image??顯示圖象h=image(x);x為圖像矩陣text??標(biāo)注文字h=text(
4、x,y,’string’)每個底層函數(shù)只能創(chuàng)建一個圖形對象,并將它們置于適當(dāng)?shù)母篙厡ο笾小?圖形句柄handle句柄:一個對象從創(chuàng)建時就被賦予唯一標(biāo)識。句柄的值:是一個數(shù)或者一個矢量。作用:利用句柄既可以操縱一個已經(jīng)存在的圖形對象的屬性,也可以在建立圖形對象時指定屬性的值。根屏幕0圖形窗口整數(shù),表示圖形窗口序號其它對象對應(yīng)的實(shí)數(shù)8例:創(chuàng)建1號窗口,返回句柄h=figure(1)h=1返回值為窗口號數(shù)例:h=line(1:6,1:6)創(chuàng)建線對象的同時也建立其唯一的句柄例:h=surf(peaks)9獲得與
5、設(shè)置句柄所代表的圖形對象的屬性句柄屬性的設(shè)置與修改格式:get(h,`屬性名`)獲得指定對象的指定的屬性get(h)獲得指定對象的全部屬性set(h,`屬性名`,`屬性值`)設(shè)置指定對象的屬性set(h):顯示指定對象的全部可設(shè)置屬性及選項10格式:h=gcf將當(dāng)前窗口對象的句柄返回hget(h)或get(gcf)查閱當(dāng)前窗口對象的屬性delete(gcf)刪除當(dāng)前窗口的屬性專用函數(shù):get(gcf,’children’)當(dāng)前窗口對象的子代11【例6-1】繪制正弦曲線,修改線為紅色并加寬,自定義坐標(biāo)軸的
6、顯示刻度,設(shè)置窗口黑色。12t=-pi:pi/20:pi;y=sin(t);h=plot(t,y)set(h,‘Color','r','LineWidth',3)ha=gcaset(gca,‘XTick',[-pi:pi/2:pi],...‘XTickLabel',{'-pi','-pi/2','0','pi/2','pi'},‘Color','k')hf=gcfset(hf,‘Name','NO.1sin(x)')13【例6-2】h=surf(sphere(30));figureh=surf(sphe
7、re(30));set(h,'EdgeColor','g')14【例6-3】作正弦、余弦曲線,將正弦曲線改為虛線,將余弦曲線幅度減為1/2高度15x=0:2*pi/180:2*pi;y1=sin(x);y2=cos(x);plot(x,y1,x,y2,x,zeros(size(x)),‘k:')16首先查詢各對象的屬性get(gcf)…h(huán)=get(gcf,'children')h=60.0004hh=get(gca,'children')hh=70.000469.000468.0004y11=get(h
8、h(2),'ydata');y22=y11/2;set(hh(2),'ydata',y22)set(hh(3),'linestyle',':')修改屬性17【例6-4】用句柄修改圖形18clc;clear;closeall;subplot('position',[0.1,0.5,0.2,0.2])[X0,Y0,Z0]=sphere(20);X=0.1*X0;Y=0.1*Y0;Z=0.1*Z0;surf(X,Y,Z)shadinginterp