《matlab程序設(shè)計(jì)》第八章和九章matlab句柄繪圖

上傳人:y****3 文檔編號(hào):125001270 上傳時(shí)間:2022-07-26 格式:PPT 頁數(shù):60 大?。?30KB
收藏 版權(quán)申訴 舉報(bào) 下載
《matlab程序設(shè)計(jì)》第八章和九章matlab句柄繪圖_第1頁
第1頁 / 共60頁
《matlab程序設(shè)計(jì)》第八章和九章matlab句柄繪圖_第2頁
第2頁 / 共60頁
《matlab程序設(shè)計(jì)》第八章和九章matlab句柄繪圖_第3頁
第3頁 / 共60頁

下載文檔到電腦,查找使用更方便

30 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《《matlab程序設(shè)計(jì)》第八章和九章matlab句柄繪圖》由會(huì)員分享,可在線閱讀,更多相關(guān)《《matlab程序設(shè)計(jì)》第八章和九章matlab句柄繪圖(60頁珍藏版)》請?jiān)谘b配圖網(wǎng)上搜索。

1、matlab語言的句柄繪圖可以對(duì)圖形各基本對(duì)象進(jìn)行更為細(xì)膩的修飾,可以產(chǎn)生更為復(fù)雜的圖形,而且為動(dòng)態(tài)圖形的制作奠定了基礎(chǔ)。高層繪圖函數(shù)是對(duì)整個(gè)圖形進(jìn)行操作的,圖形每一部分的屬性都是按缺省方式設(shè)置的,充分體現(xiàn)了matlab語言的實(shí)用性。底層繪圖函數(shù)可以定制圖形,對(duì)圖形的每一部分進(jìn)行控制,用戶可以用來開發(fā)用戶界面以及各專業(yè)的專用圖形。充分體現(xiàn)了matlab語言的開發(fā)性例:t=0:pi/100:2*pi;y=sin(t);plot(t,y)%自動(dòng)出現(xiàn)一個(gè)窗口 句柄圖形:利用底層繪圖函數(shù),通過對(duì)對(duì)象屬性的設(shè)置(Handle Graphics)與操作實(shí)現(xiàn)繪圖。句柄圖形中所有圖形操作都是針對(duì)圖形對(duì)象而言的

2、。句柄圖形充分體現(xiàn)了面向?qū)ο蟮某绦蛟O(shè)計(jì)。句柄圖形的功能v 句柄圖形可以隨意改變matlab生成圖形的方式。v 句柄圖形允許用戶定制圖形的許多特性,無論是對(duì)圖形做一點(diǎn)小改動(dòng),還是影響所有圖形輸出的整體改動(dòng)。v 句柄圖形的特性高層繪圖函數(shù)是無法實(shí)現(xiàn)的圖形對(duì)象 圖形系統(tǒng)中最基本、最底層的單元 每個(gè)圖形元素(比如其坐標(biāo)軸或圖形上的曲線、文字等)都是一個(gè)獨(dú)立的對(duì)象。用戶可以對(duì)任何一個(gè)圖形元素進(jìn)行單獨(dú)地修改,而不影響圖形的其他部分,具有這樣特點(diǎn)的圖形稱為向量化的繪圖。父對(duì)象 子對(duì)象說明:根:圖形對(duì)象的根,對(duì)應(yīng)于計(jì)算機(jī)屏幕,根只有一個(gè),其它所有圖形對(duì)象都是根的子對(duì)象。圖形窗口:根的子對(duì)象,窗口的數(shù)目不限,所

3、有圖形窗口都是根屏幕的子對(duì)象,除根之外,其它對(duì)象則是窗的子對(duì)象??丶?圖形窗口的子對(duì)象,創(chuàng)建用戶界面控件,使得用戶可采用鼠標(biāo)在圖形上作功能選擇,并返回句柄。菜單:圖形窗口的子對(duì)象,創(chuàng)建用戶界面菜單對(duì)象右鍵菜單:圖形窗口的子對(duì)象,創(chuàng)建用戶界面右鍵菜單對(duì)象 軸:圖形窗口的子對(duì)象,創(chuàng)建軸對(duì)象,并返回句柄,線面字塊像的父輩線:軸的子對(duì)象,創(chuàng)建線對(duì)象。Plot、plot3、contour、contour3命令可以產(chǎn)生線對(duì)象面:軸的子對(duì)象,創(chuàng)建塊對(duì)象。Polar、mesh、surf命令可以產(chǎn)生面對(duì)象。字:軸的子對(duì)象,創(chuàng)建字對(duì)象。位置取決于軸所建立的坐標(biāo)系塊:軸的子對(duì)象,創(chuàng)建塊對(duì)象。Fill、fill3可以

4、建立塊對(duì)象像:軸的子對(duì)象,創(chuàng)建圖像對(duì)象。圖像對(duì)象可由函數(shù)image創(chuàng)建引例:x=0:2*pi/180:2*pi;y1=sin(2*x);y2=cos(2*x);plot(x,y1,x,y2)01234567-1-0.8-0.6-0.4-0.200.20.40.60.81窗口對(duì)象線對(duì)象軸對(duì)象0102001020-10010-505-1-0.500.51x=-pitppicos(x)valueofthecosinecos(x)=0.7071002003000501001502000-1-0.500.51面對(duì)象軸對(duì)象像對(duì)象塊對(duì)象線對(duì)象文字對(duì)象在高層繪圖中對(duì)圖形對(duì)象的描述一般是缺省的或由高層繪圖函數(shù)自

5、動(dòng)設(shè)置的,因此對(duì)用戶來說幾乎是不透明的。但句柄繪圖中上述圖形對(duì)象都是用戶需要經(jīng)常使用的,所以要作到心中有數(shù),用句柄設(shè)置圖形對(duì)象的屬性。figure創(chuàng)建圖形窗口調(diào)用格式:h=figure(n)n為窗口序號(hào) uicontrol創(chuàng)建控件調(diào)用格式:h=uicontrol(property,value)property/value確定控件類型 uimenu創(chuàng)建用戶界面菜單調(diào)用格式:h=uimenu(property,value)property/value 確定菜單形式。axes 創(chuàng)建軸對(duì)象 h=axes(property,)定義軸對(duì)象的位置與大小 left,bottom width,height li

6、ne 創(chuàng)建線對(duì)象 h=line(x,y,z)patch 創(chuàng)建塊對(duì)象 h=patch(x,y,z,c)x,y,z定義多邊形,c確定填充顏色。surface 創(chuàng)建面對(duì)象 h=surface(x,y,z,c)x,y,z三維曲面坐標(biāo),c顏色矩陣。二維畫線 三維畫線 image 顯示圖象 h=image(x);x為圖像矩陣 text 標(biāo)注文字 h=text(x,y,string)每個(gè)底層函數(shù)只能創(chuàng)建一個(gè)圖形對(duì)象,并將它們置于適當(dāng)?shù)母篙厡?duì)象中。確定標(biāo)注位置標(biāo)注字符串 圖形對(duì)象是由屬性來描述的例如:figure 大小位置 1 1 640 480 顏色 0 0 0 省缺 line a.x,y 數(shù)據(jù);b.線的顏

7、色 c.線型;d.線寬h1=figure(1)set(h1,unit,centimeters,position,100200300500,color,r)%指points.set(h1,unit,normalized,position,0.2,0.2,0.64,0.32)%歸一化例1:注:注:unit單位的取值為:inches,centimeters,normalized,points,pixels和characters。x=1:10,y=1:10;h2=plot(x,y);set(h2,linewidth,2,color,r);set(h2,linestyle,-.)例2:什么是句柄?句柄是

8、圖形對(duì)象的標(biāo)識(shí)代碼,標(biāo)識(shí)代碼含有圖形對(duì)象的各種必要的屬性信息。什么是句柄操作?向量化的繪圖要求給每個(gè)圖形元素分配一個(gè)句柄(handle),以后再對(duì)該圖形元素做進(jìn)一步操作時(shí),則只需對(duì)該句柄進(jìn)行操作即可。各圖形對(duì)象的句柄的數(shù)據(jù)格式:根屏幕0圖形窗口整數(shù),表示圖形窗口數(shù)其它對(duì)象對(duì)應(yīng)的浮點(diǎn)數(shù) 所有能創(chuàng)建圖形對(duì)象的matlab函數(shù)都可給出所創(chuàng)建圖形對(duì)象的句柄例:創(chuàng)建1號(hào)窗口,返回句柄h=figure(1)h=1返回值為窗口號(hào)數(shù)例:h=line(1:6,1:6)創(chuàng)建線對(duì)象的同時(shí)也建立了一個(gè)唯一的句柄變量h是句柄值浮點(diǎn)數(shù) 句柄屬性的設(shè)置與修改get:獲得句柄圖形對(duì)象的屬性和返回某些對(duì)象的句柄值set:改變圖

9、形對(duì)象的屬性 專用函數(shù):gcf:當(dāng)前窗口對(duì)象的句柄GetCurrentFiguregca:當(dāng)前軸對(duì)象的句柄GetCurrentAxesgco:返回當(dāng)前鼠標(biāo)所單擊的圖形對(duì)象的句柄值GetCurrentObject。若一個(gè)對(duì)象的句柄已知,可以獲取其“父”或“子”的句柄:h=gcaf=get(h,parent);l=get(h,children);操作格式:h=gcf 將當(dāng)前窗口對(duì)象的句柄賦值給變量hget(h)或get(gcf)查閱當(dāng)前窗口對(duì)象的屬性delete(gcf)刪除當(dāng)前窗口的屬性例:h=line(x,y)get(h)1.get(gca,children)軸的子代Haveabreak!例:

10、創(chuàng)建一個(gè)線對(duì)象并返回線對(duì)象的句柄值 h1=line(0:10,0:10)h1=h1為句柄的代碼值012345678910012345678910 查閱線對(duì)象的屬性名稱和屬性值get(h1)Color=110EraseMode=normalLineStyle=-LineWidth=0.5MarkerSize=6Xdata=(1by11)Ydata=(1by11)Zdata=Children=Parent=56.0001Type=lineUserData=Visible=on 根據(jù)軸是線對(duì)象的父代,可查軸的句柄gca 可查色序get(gca,colororder)ans=110(線)101(字)0

11、11100010001001 設(shè)置線條和窗口的顏色set(h1,color,1 0 0)RGB配色方案set(h1,color,1 0.5 0)02468100123456789100246810012345678910set(gcf,color,0.50.50.5)set(gcf,color,0.50.60.8)012345678910012345678910012345678910012345678910 例:獲取同軸上子對(duì)象的句柄和相應(yīng)對(duì)象類型。clf reset,t=(0:100)/100*2*pi;H_line=line(Xdata,t,Ydata,sin(t)text(pi,0.8

12、,fontsize14sin(t)H_c=get(get(H_line,parent),children)T=get(H_c,Type)findobj指令語法格式:h2=findobj(h1,屬性名稱,屬性值);含義:根據(jù)限定的對(duì)象列表找出與對(duì)象的屬性名和屬性值匹配的對(duì)象句柄值例子:例子:clfreset,t=(0:pi/100:2*pi);tt=t*11;yy=sin(tt)*diag(0.51);plot(tt,yy),Hb=findobj(gca,Color,b)%在當(dāng)前軸上尋找藍(lán)線的句柄例:作正弦、余弦曲線,將正弦曲線改為虛線,將余弦曲線幅度減為1/2高度,如何用句柄實(shí)現(xiàn)。x=0:2*

13、pi/180:2*pi;y1=sin(x);y2=cos(x);plot(x,y1,x,y2,x,zeros(size(x),k-)01234567-1-0.500.5101234567-1-0.8-0.6-0.4-0.200.20.40.60.81 首先查詢各對(duì)象的屬性get(gcf)h=get(gcf,children)h=hh=get(gca,children);hh=01234567-1-0.500.5101234567-1-0.8-0.6-0.4-0.200.20.40.60.81 修改屬性y11=get(hh(2),ydata);y22=y11/2;set(hh(2),ydata,

14、y22)set(hh(3),linestyle,:)控制一個(gè)圖形對(duì)象是通過句柄實(shí)現(xiàn)的,具體是通過句柄操作函數(shù)get,set將某對(duì)象句柄屬性作設(shè)置與修改。對(duì)象屬性的直接操作對(duì)象屬性的直接操作是通過當(dāng)前句柄來實(shí)現(xiàn)的,所以首先要獲得當(dāng)前句柄值以及對(duì)象的屬性,然后再查詢或修改。get(h)get(h,propertyname)set(h)set(h,propertyname,value)set(h,屬性名稱,新屬性)color,rlinestyle,:Box 屬性:表示是否需要坐標(biāo)軸上的方框,選項(xiàng)可以為 on 和 off,默認(rèn)的值為 on。set(gca,box,off)ColorOrder 屬性:設(shè)

15、置多條曲線的顏色順序,應(yīng)該為一個(gè) n x 3 矩陣,可以由 colormap()函數(shù)來設(shè)置。NextPlot 屬性:表示坐標(biāo)軸圖形的更新方式,replace 是默認(rèn)的選項(xiàng),表示重新繪制,而 add 選項(xiàng)表示在原來的圖形上疊印,它相當(dāng)于直接使用 hold on 命令的效果。Title 屬性:本坐標(biāo)軸標(biāo)題的句柄。而其具體內(nèi)容由 title()函數(shù)設(shè)定,由此句柄就可以訪問到原來的標(biāo)題了。t1=title(test);set(t1,fontsize,15)坐標(biāo)軸對(duì)象其他一些屬性:坐標(biāo)軸對(duì)象其他一些屬性:XLabel 屬性:x 軸標(biāo)注的句柄,其內(nèi)容由 xlabel()函數(shù)設(shè)定。此外,類似地還有 YLab

16、el 和 ZLabel 屬性等。XDir 屬性:x 軸方向,可以選擇 normal(正向)和 rev(逆向),此外 YDir 和 ZDir 屬性也是類似的。set(gca,xdir,rev)XGrid 屬性:表示 x 軸是否加網(wǎng)格線,可選值為 off 和 on,此外還類似地有 YGrid 和 ZGrid 選項(xiàng)。set(gca,xgrid,on)GridLineStyle 屬性:網(wǎng)格線類型,如實(shí)線、虛線等,其設(shè)置類似于 plot()函數(shù)的選項(xiàng),默認(rèn)值為:。set(gca,gridlinestyle,-)XLim 屬性:x 軸上下限,以向量 xm,xM 形式給出。此外,還有 YLim 和 ZLim

17、 屬性,前面介紹的 axis()函數(shù)實(shí)際上是對(duì)這些屬性的直接賦值。set(gca,xlim,030)XScale 屬性:x 軸刻度類型設(shè)置,可以為 linear(線性的)和 log(對(duì)數(shù)的)。此外還有 YScale 和 ZScale 屬性。set(gca,yscale,log)XTick 和 XTickLabel 屬性:XTick 屬性將給出 x 軸上標(biāo)尺點(diǎn)值的向量,而 XTickLabel 將存放這些標(biāo)尺點(diǎn)上的標(biāo)記字符串。對(duì) y 和 z 軸也將有相應(yīng)的標(biāo)尺屬性,如 ZTick 等。x=-pi:pi/2:pi;Y=sin(x);plot(x,y);set(gca,xtick,-pi:pi/2:

18、pi)%設(shè)置標(biāo)尺點(diǎn)的值set(gca,xticklabel,-pi,-pi/2,0,pi/2,pi)%標(biāo)記標(biāo)尺點(diǎn)上的字符例子:2.對(duì)象屬性的繼承操作 對(duì)象屬性的繼承操作是通過父代對(duì)象,設(shè)置缺省對(duì)象屬性來實(shí)現(xiàn)的。父代句柄屬性中設(shè)置缺省值后,所有子代對(duì)象均可以繼承該屬性的缺省值。屬性缺省值的描述結(jié)構(gòu)為:Default+對(duì)象名稱+對(duì)象屬性如:DefaultFigureColor圖形窗口的顏色DefaultLineLineWide線的寬度DefaultLineColor線的顏色缺省值的獲得與設(shè)置也是由get,set函數(shù)實(shí)現(xiàn)的例:get(0,DefaultFigureColor)獲得圖形 窗口的缺省值

19、set(h,DefaultLineColor,r)設(shè)置線的 顏色為紅色例:set(gca,DefaultTextColor,1 0 0)gtext(正弦)gtext(余弦)在軸對(duì)象上設(shè)置字對(duì)象的顏色缺省值為紅色 繼承該缺省值在圖上添加紅色的文字注釋例:在軸對(duì)象上(父代對(duì)象)設(shè)置線的顏色缺省值為紅色x=0:2*pi/180:2*pi;y=sin(2*x);set(gca,DefaultLineColor,1 0 0);h=line(x,y)h=set(h,color,default)3.其它操作default由父代繼承factory廠家設(shè)定省缺值remove清除設(shè)定缺省值例:set(gca,de

20、faultlinecolor,remove)set(h,color,factory)例子:例子:影響影響lineline或或plotplot畫線時(shí)線型和色彩的畫線時(shí)線型和色彩的“父父”對(duì)象設(shè)置。對(duì)象設(shè)置。(1)指令中直接指定線型或)指令中直接指定線型或/和顏色:用和顏色:用“紅虛點(diǎn)線紅虛點(diǎn)線”繪所有曲線。繪所有曲線。clf reset;t=(0:pi/50:2*pi);k=0.4:0.1:1;Y=cos(t)*k;line(t,Y,Color,1 0 0,LineStyle,-.)(2 2)軸對(duì)象屬性)軸對(duì)象屬性 LineStyle LineStyle 和和 ColorOrder ColorO

21、rder 的影響的影響clf resetset(gca,ColorOrder,0.7 0.7 0.7,LineStyle,:)line(t,Y)(3)在)在“圖型窗口對(duì)象圖型窗口對(duì)象”上,對(duì)軸的缺省屬性上,對(duì)軸的缺省屬性 DefaultAxesLineStyleOrder 和和 DefaultAxesColorOrder 設(shè)置所產(chǎn)生的影響設(shè)置所產(chǎn)生的影響clf resetset(gcf,DefaultAxesLineStyleOrder,:);set(gcf,DefaultAxesColorOrder,1 0 0);line(t,Y)例:x=0:2*pi/180:2*pi;y=sin(2*x)

22、;h=line(x,y)將所有新圖形窗口的顏色由省缺值設(shè)置為適中的灰色set(0,DefaultFigureColor,0.5 0.5 0.5)h=line(x,y)set(h,color,m,linewidth,2,linestyle,*)set(0,defaultfigurecolor,b)set(0,defaultaxescolor,g)h=line(x,y)set(h,color,r)set(gca,xcolor,w)set(gca,ycolor,w)h=surf(peaks(30)set(0,defaultsurfaceedgecolor,w)h1=surf(peaks(30)set

23、(h1,edgecolor,default)t=0:0.1:2*pi;y=sin(t);plot(t,y)h=gcf;set(h,color,0,1,0.5,MenuBar,none,name,句柄作圖示例)%a=get(h,child);gridon a=gca set(a,color,y,linewidth,2,fontangle,italic,fontsize,15,GridLineStyle,-)p=get(a,child)set(p,color,r,linestyle,-,marker,*,markeredgecolor,b,markersize,10)自制光標(biāo)指針形狀(1)在屏幕的

24、右上方創(chuàng)建一個(gè)背景為“橘黃”色的圖形窗,窗名為“試驗(yàn)窗”。bdw=0.01;%左右兩側(cè)邊和底邊的寬度tpw=0.15;%頂邊寬度不能太小pos=1/2+bdw,2/3+bdw,1/2-2*bdw,1/3-bdw-tpw;figure(Units,normalized,Position,pos,Color,0.9,0.65,0)set(gcf,Name,試驗(yàn)窗)2)為該圖形窗制作一個(gè)“手指”狀光標(biāo)指針P=ones(16,16)*NaN;P(1,5)=1;P(2:14,4)=1;P(15,5)=1;P(16,6:11)=1;P(15,12)=1;P(9:14,13)=1;P(2:9,6)=1;P(

25、9,7)=1;P(8,8)=1;P(9,9)=1;P(8,10)=1;P(9,11)=1;P(8,12)=1;P(2:14,5)=2;P(10:15,6:11)=2;P(9,8)=2;P(9,10)=2;P(9:14,12)=2;set(gcf,Pointer,Custom,PointerShapeCData,P,PointerShapeHotSpot,2,5)制作個(gè)性化雙坐標(biāo)系制作個(gè)性化雙坐標(biāo)系 tp=(0:100)/100*5;yp=8+4*(1-exp(-0.8*tp).*cos(3*tp);tt=(0:500)/500*40;yt=120+40*(1-exp(-0.05*tt).*co

26、s(tt);clfreset,h_ap=axes(Position,0.13,0.13,0.7,0.75);set(h_ap,Xcolor,b,Ycolor,b,Xlim,0,5,Ylim,0,15);nx=10;ny=6;pxtick=0:(5-0)/nx):5;pytick=0:(15-0)/ny):15;set(h_ap,Xtick,pxtick,Ytick,pytick,Xgrid,on,Ygrid,on)h_linet=line(tp,yp,Color,b);set(get(h_ap,Xlabel),String,時(shí)間rightarrow(分))set(get(h_ap,Ylabel

27、),String,壓力rightarrow(times105Pa)h_at=axes(Position,get(h_ap,Position);set(h_at,Color,none,Xcolor,r,Ycolor,r);set(h_at,Xaxislocation,top)set(h_at,Yaxislocation,right,Ydir,rev)set(get(h_at,Xlabel),String,fontsize15fontname隸書時(shí)間rightarrow(分))set(get(h_at,Ylabel),String,(circC)fontsize15leftarrowfontname隸書零下溫度)set(h_at,Ylim,0,210)line(tt,yt,Color,r,Parent,h_at)xpm=get(h_at,Xlim);txtick=xpm(1):(xpm(2)-xpm(1)/nx):xpm(2);tytick=0:(210-0)/ny):210;set(h_at,Xtick,txtick,Ytick,tytick)熟悉圖形對(duì)象句柄與句柄操作 掌握圖形對(duì)象屬性的查詢與操作 能夠任意設(shè)置圖形對(duì)象的屬性

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!