《MATLAB基礎及應用》課件 第4章 繪圖_第1頁
《MATLAB基礎及應用》課件 第4章 繪圖_第2頁
《MATLAB基礎及應用》課件 第4章 繪圖_第3頁
《MATLAB基礎及應用》課件 第4章 繪圖_第4頁
《MATLAB基礎及應用》課件 第4章 繪圖_第5頁
已閱讀5頁,還剩42頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

MATLAB基礎及應用曹敦虔編著第4章繪圖本章學習重點掌握內(nèi)容:繪制曲線繪制曲面及圖形填充圖形句柄、修飾與動畫圖形保存第4章繪圖4.1曲線4.2曲面4.3填充圖形4.4圖形句柄4.5圖形修飾4.6動畫4.7圖形保存4.1曲線曲線有平面曲線和三維空間中的曲線,繪制平面上的曲線使用plot、fplot、ezplot,繪制三維空間中的曲線使用plot3、ezplot3.1.plotplot是MATLAB最基本的作圖命令,可繪制函數(shù)圖像、數(shù)據(jù)點圖、幾何形狀等圖形.其基本格式為:plot(X,Y)

使用默認的樣式繪圖,X和Y是繪圖數(shù)據(jù),通常是兩個長度相同的向量plot(X,Y,LineSpec)

使用指定的樣式繪圖,樣式包括線型、點型和顏色4.1曲線線型表符號線型符號線型-實線(默認):虛線--短劃線-.點劃線LineSpec是樣式參數(shù),為一個字符串,可以包括線型、點型和顏色.三種樣式的元素可以按任何順序出現(xiàn),并且可以省略一個或多個選項.例如,':*r'是一個帶有星形標記的紅色虛線.顏色表符號顏色符號顏色y黃色g綠色m品紅b藍色c青色w白色r紅色k黑色符號點型符號點型o圓(o)^正三角形(△)+加號v倒三角形(▽)*星號>

右三角形(?).點<

左三角形(?)x叉(×)p五角星(☆)s方形(□)h六角星(?)d菱形(

)

點型表4.1曲線例4.1繪制函數(shù)y=sin(x)+cos(x),?π≤x≤π圖形.基本思想:首先對區(qū)間[?π,π]作剖分,然后對每一個分點計算對應的函數(shù)值,再使用plot函數(shù)作圖.x=linspace(-pi,pi);%對區(qū)間[-π,π]進行均勻剖分y=sin(x)+cos(x);%對每一個分點,計算函數(shù)值plot(x,y,'b');%根據(jù)數(shù)據(jù)點(x,y)畫圖,并指定樣式4.1曲線plot函數(shù)默認使用直線將相鄰的兩個點連接起來,當剖分的點比較密時,圖像看起來就像一條光滑的曲線.plot函數(shù)可以一次畫多條曲線,并且為每條曲線指定單獨的樣式.例如:x=linspace(-pi,pi);y1=sin(x);y2=cos(x);plot(x,y1,'r-.',x,y2,':sg');%在同一坐標系下繪制圖形legend('sin(x)','cos(x)');%標識曲線4.1曲線利用plot可以繪制一些平面中的幾何圖形.下面舉幾個例子,其它圖形可按類似方法繪制.%畫圓:fr=2;%半徑t=linspace(0,2*pi);%對角度進行剖分x=r*cos(t);%計算圓周上的點x坐標y=r*sin(t);%計算圓周上的點y坐標plot(x,y);%連接相鄰的點,構(gòu)成圓axis([-33-33])

%設置圖形顯示范圍axisequal

%設置圖形顯示橫、縱坐標比例4.1曲線%畫三角形:x=[142];%三角形3個頂點的x坐標y=[013];%三角形3個頂點的y坐標plot([xx(1)],[yy(1)]);%連接相鄰的點axisequal4.1曲線2.fplotfplot函數(shù)用于快速繪制函數(shù)圖形,可以不用事先計算函數(shù)值,只要給出函數(shù)句柄(或函數(shù)表達式)和自變量范圍就可以了.fplot函數(shù)格式:fplot(fun,limits)

繪制函數(shù)fun的limits范圍內(nèi)的圖形fun可以是函數(shù)句柄,也可以是字符串形式的函數(shù)表達式.limits是一個長度為2的向量,表達繪圖區(qū)間.例如:4.1曲線fplot('sin(x)*cos(x)',[-pi,pi]);fplot(@(x)sin(x).*cos(x),[-pi,pi]);上面兩行代碼都繪制了同樣的圖形4.1曲線3.ezplotezplot與fplot的功能相似,都可以使用函數(shù)句柄和函數(shù)表達式繪圖.不同的是,ezplot還支持隱函數(shù)作圖.ezplot函數(shù)格式:ezplot(fun,limits)

繪制函數(shù)fun的limits范圍內(nèi)的圖形例如:ezplot('sin(x)+cos(y)=1',[0pi-pi/2pi/2]);%隱函數(shù)作圖4.1曲線4.plot3plot3是繪制3維空間中的曲線的基本繪圖函數(shù),需要先計算數(shù)據(jù)點,然后使用指定樣式繪圖,使用方法與plot類似.格式:plot3(X,Y,Z)

使用默認的樣式繪圖,X、Y和Z是繪圖數(shù)據(jù),通常是三個長度相同的向量plot3(X,Y,Z,LineSpec)

使用指定的樣式繪圖4.1曲線t=0:pi/50:10*pi;st=t.*sin(t);ct=t.*cos(t);plot3(st,ct,t)4.1曲線5.ezplot3函數(shù)ezplot3也可以繪制三維空間中的曲線.例如:或者ezplot3('t*sin(t)','t*cos(t)','t',[0,10*pi]);ezplot3(@(t)t.*sin(t),@(t)t.*cos(t),@(t)t,[0,10*pi]);4.1曲線6.polarpolar是極坐標作圖,例如:t=0:0.01:2*pi;polar(t,sin(t).*cos(2*t),'--b');4.1曲線7.rectangle對于矩形、圓角矩形、圓、橢圓可以使用rectangle來繪制.語法格式:繪制矩形:rectangle('Position',[xywh],Curvature',[00])繪制圓或橢圓:rectangle('Position',[xywh],Curvature',[11])繪制圓角矩形:rectangle('Position',[xywh],Curvature',[ab])4.1曲線x=0;y=0;w=2;h=1;rectangle('Position',[x-w/2y-h/2wh],'Curvature',[00],'EdgeColor','r');%矩形rectangle('Position',[x-w/2y-h/2wh],'Curvature',[0.20.2],'EdgeColor','g');%圓角矩形rectangle('Position',[x-w/2y-h/2wh],'Curvature',[11],'EdgeColor','b');%橢圓rectangle('Position',[x-h/2y-h/2hh],'Curvature',[11],'EdgeColor','c');%圓axisequal4.2曲面繪制三維空間中的曲面的函數(shù)有mesh、surf、meshc、meshz以及waterfall等,在繪制前需要計算曲面上各點的空間坐標,再使用曲面繪圖函數(shù)來繪制圖形.MATLAB繪制三維空間中的曲面z=f(x,y)的一般步驟是:(1)

對2個坐標軸進行剖分,得到兩個向量x,y;(2)

利用x,y生成網(wǎng)格,得到兩個矩陣X,Y;(3)

對每一對X,Y中的元素(即網(wǎng)絡中的一個結(jié)點),計算對應的函數(shù)值Z=f(X,Y);(4)

使用mesh、surf等函數(shù)繪制圖形.4.2曲面例4.2繪制函數(shù)f(x,y)=x2+y2,(?2≤x≤2,?3≤y≤3)的圖形.基本思路:先對x軸和y軸進行剖分,再使用meshgrid生成網(wǎng)格,計算網(wǎng)格結(jié)點對應的函數(shù)值,再使用mesh函數(shù)繪制圖形.f=@(x,y)x.^2+y.^2;%定義函數(shù)x=linspace(-2,2,41);%對x軸進行剖分y=linspace(-3,3,61);%對y軸進行剖分[X,Y]=meshgrid(x,y);%生成網(wǎng)格Z=f(X,Y);%計算每個網(wǎng)絡結(jié)點對應的函數(shù)值mesh(X,Y,Z);%繪制圖形4.2曲面

4.2曲面在生成空間中的點之后,函數(shù)mesh只是把這些點用直線連接,形成一張彎曲的網(wǎng)絡.當剖足夠細的時候,網(wǎng)絡就逼近了函數(shù)z=f(x,y)的圖形.也可以使用其它方式來畫圖,用法與mesh基本一致.函數(shù)功能函數(shù)功能mesh三維網(wǎng)絡圖surfl基于彩色照明的三維曲面圖meshc帶等高線的三維網(wǎng)絡圖surfnorm三維曲面法線的計算與顯示meshz帶垂簾的三維網(wǎng)絡圖waterfall瀑布圖surf三維面圖ribbon色帶圖surfc帶等高線的三維面圖contour3三維等高線圖4.2曲面f=@(x,y)x.^2+y.^2;%定義函數(shù)x=linspace(-2,2,41);%對x軸進行剖分y=linspace(-3,3,61);%對y軸進行剖分[X,Y]=meshgrid(x,y);%生成網(wǎng)格Z=f(X,Y);%計算每個網(wǎng)絡結(jié)點對應的函數(shù)值mesh(X,Y,Z);%帶等高線的三維面圖4.2曲面

ezsurfc('sqrt(x^2+y^2)',[-4,4,-4,4]);ezsurfc(@(x,y)sqrt(x.^2+y.^2),[-4,4,-4,4]);或4.3填充圖形fill和fill3分別用于填充平面和三維空間中封閉區(qū)域.例如:x=[142];%三角形3個頂點的x坐標y=[013];%三角形3個頂點的y坐標fill([xx(1)],[yy(1)],'b');%使用藍色填充三角形區(qū)域axisequal4.3填充圖形也可以對三維空間中的平面區(qū)域進行填充,例如:X=[0112;1122;0011];Y=[1111;1010;0000];Z=[1111;1010;0000];C=[0.50001.00001.00000.5000;1.00000.50000.50000.1667;0.33300.33300.50000.5000];fill3(X,Y,Z,C)4.3填充圖形可以增加參數(shù)'facealpha'來設置填充顏色的透明度,例如:t=linspace(0,2*pi);x1=cos(t);y1=0.5+sin(t);x2=-0.5+cos(t);y2=sin(t);x3=0.5+cos(t);y3=sin(t);fill(x1,y1,'r');%使用紅色填充圓holdon;fill(x2,y2,'g','facealpha',0.5);%使用綠色填充圓,并設置透明度為0.5fill(x3,y3,'b','facealpha',0.5);%使用藍色填充圓,并設置透明度為0.5axisequalholdoff4.4圖形句柄圖形句柄是一幅圖形的標識,通過圖形句柄可以獲取、修改圖形的參數(shù),甚至實現(xiàn)簡單的動畫.當畫圖時,將畫圖函數(shù)賦值給一個變量,那么這個變量就獲得這個圖形的句柄.例如:x=linspace(-pi,pi);y=sin(x);g=plot(x,y);%獲取圖形句柄4.4圖形句柄當獲得圖形柄后,使用get命令可以顯示圖形的詳細信息,例如執(zhí)行get(g),結(jié)果為:g=Color:[00.44700.7410]LineStyle:'-'LineWidth:0.5000Marker:'none'MarkerSize:6MarkerFaceColor:'none'XData:[1x100double]YData:[1x100double]ZData:[1x0double]??可以通過修改g的屬性值來改變圖形的外觀.例如:g.Color=[001];圖形中曲線將以藍色顯示.也可以使用命令set(g,'Color',[001])來達到同樣的目的.4.5圖形修飾1.圖形窗口使用figure命令可以新建圖形窗口,并自動按次序命名為Figure1,Figure2,?.也可以使用figure(n)來新建或選擇指定的窗口,其中n為整數(shù).4.5圖形修飾例4.4分別在兩個圖形窗口中顯示不同的圖形.x=-2:0.1:2;y=-2:0.1:2;[X,Y]=meshgrid(x,y);Z=X.^2+Y.^2;figure(1);%創(chuàng)建Figure1圖形窗口surf(X,Y,Z);%在Figure1圖形窗口上繪圖Z=X.^2-Y.^2;figure(2);%創(chuàng)建Figure2圖形窗口surf(X,Y,Z);%在Figure2圖形窗口上繪圖4.5圖形修飾使用subplot可以在一個圖形窗口中繪制多幅子圖.例4.5在同一窗口中顯示兩個圖形x=-2:0.1:2;y=x.^2;z=x.^3;subplot(1,2,1);%1行2列第1個圖plot(x,y,'d:r')subplot(1,2,2);%1行2列第2個圖plot(x,z,'-*g');4.5圖形修飾2.坐標MATLAB允許在繪圖前或后設置圖形的坐標顯示范圍、顯示比例等.axis([xminxmaxyminymax])

平面圖形坐標顯示范圍axis([xminxmaxyminymaxzminzmaxcmincmax])

空間圖形坐標顯示范圍axisequal

設置坐標軸為等比例axissquare

設置坐標軸為等比例axisnormal

使當前軸區(qū)域為方形(或三維時為立方)axisoff

關閉坐標軸axison

打開坐標軸xlim([xminxmax])

設置x坐標顯示范圍ylim([yminymax])

設置y坐標顯示范圍zlim([zminzmax])

設置z坐標顯示范圍4.5圖形修飾3.文本可以在圖形中加入一些文字說明,增加圖形的可讀性。text(x,y,'字符串')

在坐標(x,y)處顯示字符串gtext('字符串')

使用鼠標在圖形中確定字符串的顯示位置title('字符串')

為圖形添加標題xlabel('字符串')

為x坐標添加說明ylabel('字符串')

為y坐標添加說明zlabel('字符串')

為z坐標添加說明legend('字符串1','字符串2',?)

為圖形中多條曲線進行標示如果希望使用latex格式輸入文本,可以增加參數(shù)'Interpreter',并取值為'latex'.4.5圖形修飾4.網(wǎng)格如果希望在圖形中顯示網(wǎng)格線,可以使用gridon命令;如果希望隱藏網(wǎng)格線,則使用gridoff命令.單獨使用grid命令可以在兩種狀態(tài)中進行切換.5.持續(xù)繪圖當新建圖形窗口后(執(zhí)行figure命令或執(zhí)行繪圖命令),holdon命令將使得后面的圖形在當前窗口中繪制,這樣可以分步將多條曲線或曲面繪制在同一坐標系下.如果希望新繪制的圖形覆蓋原有圖形,可以執(zhí)行一次holdoff命令.4.6動畫使用set函數(shù)可以修改圖形中的數(shù)據(jù),如果在圖形上以一定的頻率持續(xù)畫圖或修改圖形的數(shù)據(jù)即可實現(xiàn)動畫.4.6動畫

4.6動畫r=1;%彈簧半徑t=linspace(0,20*pi,10*50);x=r*cos(t);y=r*sin(t);z=t;g=plot3(x,y,z);%繪制螺旋線axis([-55-55040*pi])%設置圖形顯示范圍v=1;%伸縮方向,v=1時拉伸,v=-1時壓縮c=1;%彈簧長度系數(shù)while(1)

if(v==1&&c>=2)%如果拉伸到2倍長度

v=-1;%改變?yōu)閴嚎s

elseif(v==-1&&c<=0.5)%如果壓縮到0.5倍長度

v=1;%改變?yōu)槔?/p>

endc=c+v*0.1;%計算新彈簧長度系數(shù)

z=c*t;%計算新彈簧z坐標

set(g,'ZData',z);%更新數(shù)據(jù)

pause(0.1);%暫停0.1秒end4.6動畫

4.6動畫%定義波紋函數(shù)f=@(x,y,p)abs(sin(p*(x.^2+y.^2))./(x.^2+y.^2));p=3;%頻率x=linspace(-5,5,800);%對x軸進行剖分y=linspace(-5,5,800);%對y軸進行剖分[X,Y]=meshgrid(x,y);%生成網(wǎng)絡Z=f(X,Y,p);%對每個網(wǎng)絡結(jié)點計算的函數(shù)值g=imshow(Z);%以函數(shù)值為灰度顯示圖像while(1)p=p-0.05;%更新頻率

if(p<0.5),p=3;endZ=f(X,Y,p);%重新計算波紋函數(shù)值

set(g,'CData',Z);%更新數(shù)據(jù)

pause(0.05);%暫停end4.6動畫

4.6動畫

4.6動畫

4.6動畫person=[10]; %人的初始位置dog=[00]; %狗的初始位置a=1; %人的速率b=1.05; %狗的速率T=100; %截止時間dt=0.1; %離散化時間間隔rectangle('Position',[-1-122],'Curvature'

溫馨提示

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

最新文檔

評論

0/150

提交評論