中南大學MATLAB課件(第5章MATLAB繪圖)_第1頁
中南大學MATLAB課件(第5章MATLAB繪圖)_第2頁
中南大學MATLAB課件(第5章MATLAB繪圖)_第3頁
中南大學MATLAB課件(第5章MATLAB繪圖)_第4頁
中南大學MATLAB課件(第5章MATLAB繪圖)_第5頁
已閱讀5頁,還剩78頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第5章 MATLAB繪圖5.1 二維圖形5.2 三維圖形5.3 三維圖形的精細處理5.4 隱函數(shù) 繪圖5.5 低層繪圖操作5.6 光照和材質處理5.7 圖像顯示與動畫制作 5.1 二維圖形二維圖形5.1.1 繪制二維曲線的基本函數(shù)1. plot函數(shù)的基本用法plot函數(shù)的基本調用格式為:plot(x,y) 其中x和y為長度相同的 向量,分別用于存儲x坐標和y坐標數(shù)據(jù)。x(1)x(2)x(i)x(n)y(1)y(2)y(i)y(n)在平面上繪制圖形,采用不同的坐標系。在平面直角坐標系xoy內,用點(x(1),y(1),(x(2),y(2), (x(i),y(i),(x(n),y(n) 繪制曲線。

2、xy 例例5.1 在在0X2 區(qū)間內,繪制曲線區(qū)間內,繪制曲線 y=2e-0.5xsin(2x)。 程序如下:程序如下: x=0:pi/100:2*pi;y=2*exp(-0.5*x).*sin(2*pi*x); plot(x,y) 例例5.2 繪制繪制 參數(shù)方程參數(shù)方程 曲線。曲線。2cos3tsinxttytt,程序如下程序如下:t=-pi:pi/100:pi;x=t.*cos(3*t);y=t.*sin(t).*sin(t);plot(x,y); 說明:說明:(1)當x是向量,y是有一維與x同維的矩陣時,則繪制出多根不同色彩的曲線。曲線條數(shù)等于y矩陣的另一維數(shù),x被作為這些曲線共同的橫坐

3、標。(多條曲線) x=linspace(0,2*pi,100); y=sin(x); cos(x); plot(x,y)(2)當x,y是同維矩陣時,則以x,y 對應 列元素為橫、縱坐標分別繪制曲線,曲線條數(shù)等于矩陣的列數(shù)。 (多條曲線)(3)plot函數(shù)最簡單的調用格式是只包含一個輸入?yún)?shù):plot(x)。X是實向量時: 等效于 plot(1:length(x), x)X是實矩陣時: 各列X是復數(shù)向量時:各元素的 實部、虛部 2含多個輸入?yún)?shù)的含多個輸入?yún)?shù)的plot函數(shù)函數(shù)含多個輸入?yún)?shù)的plot函數(shù)調用格式為:plot(x1,y1,x2,y2,xn,yn)3含含 選項選項 的的plot函數(shù)

4、函數(shù)含選項的plot函數(shù)調用格式為:plot(x1,y1,選項1,x2,y2, 選項2,xn,yn,選項n)選項選項 說明曲線的 線型、顏色或標記符號 例例5.3 用不同線型和顏色在同一坐標內繪制曲線用不同線型和顏色在同一坐標內繪制曲線y=2e-0.5x sin(2x)及其包絡線。及其包絡線。程序如下:x=(0:pi/100:2*pi);y1=2*exp(-0.5*x)*1,-1;y2=2*exp(-0.5*x).*sin(2*pi*x);x1=(0:12)/2;y3=2*exp(-0.5*x1).*sin(2*pi*x1);plot(x,y1,g:,x,y2,b-,x1,y3,rp);012

5、34567-2-1.5-1-0.500.511.52 4雙雙 縱坐標縱坐標 函數(shù)函數(shù)plotyy plotyyplotyy函數(shù)是函數(shù)是MATLAB 7 MATLAB 7 新增的函數(shù)。它能把新增的函數(shù)。它能把函數(shù)值具有函數(shù)值具有不同量綱、不同數(shù)量級不同量綱、不同數(shù)量級的兩個函的兩個函數(shù)繪制在同一坐標中。調用格式為:數(shù)繪制在同一坐標中。調用格式為: plotyyplotyy(x1,y1,(x1,y1,x2,y2x2,y2) ) 其中其中x1-y1x1-y1對應一條曲線,對應一條曲線,x2-y2x2-y2對應另一對應另一條曲線。條曲線。橫坐標橫坐標的標度相同,的標度相同,縱坐標縱坐標有兩個,有兩個,

6、左縱坐標左縱坐標用于用于x1-y1x1-y1數(shù)據(jù)對,數(shù)據(jù)對,右縱坐標右縱坐標用于用于x2-y2x2-y2數(shù)據(jù)對。數(shù)據(jù)對。 例例5.4 用不同標度在同一坐標內繪制曲線用不同標度在同一坐標內繪制曲線y1=e-0.5xsin(2x)及曲線及曲線y2=1.5e-0.1xsin(x)。 程序如下: x1=0:pi/100:2*pi; x2=0:pi/100:3*pi; y1=exp(-0.5*x1).*sin(2*pi*x1); y2=1.5*exp(-0.1*x2).*sin(x2); plotyy(x1,y1,x2,y2);0246810-1010246810-202 5.1.2 繪制圖形的輔助操作

7、繪制圖形的輔助操作 1. 圖形標注圖形標注 有關圖形標注函數(shù)的調用格式為:有關圖形標注函數(shù)的調用格式為: title(圖形名稱圖形名稱) xlabel(x軸說明軸說明) ylabel(y軸說明軸說明) text(x,y,圖形說明圖形說明) legend(圖例圖例1,圖例圖例2,) 2. 坐標控制坐標控制函數(shù)的調用格式為:函數(shù)的調用格式為:axis(xmin xmax ymin ymax zmin zmax)axis函數(shù)功能豐富,常用的用法還有:函數(shù)功能豐富,常用的用法還有:axis equal 縱、橫坐標軸采用等長刻度縱、橫坐標軸采用等長刻度axis square 產生正方形坐標系產生正方形坐

8、標系(缺省為矩形缺省為矩形)axis auto 使用缺省設置使用缺省設置axis off 取消坐標軸取消坐標軸axis on 顯示坐標軸顯示坐標軸grid on/off命令控制是畫還是不畫網(wǎng)格線,不帶命令控制是畫還是不畫網(wǎng)格線,不帶參數(shù)的參數(shù)的grid命令在兩種狀態(tài)之間進行切換。命令在兩種狀態(tài)之間進行切換。box on/off命令控制是加還是不加邊框線,不帶命令控制是加還是不加邊框線,不帶參數(shù)的參數(shù)的box命令在兩種狀態(tài)之間進行切換。命令在兩種狀態(tài)之間進行切換。 例例5.5 繪制繪制分段函數(shù)分段函數(shù)曲線并添加圖形標注。曲線并添加圖形標注。04246( )5/26818xxxf xxxx,224

9、2011, 120:0.5:2.521, 22.5360ttztttttPt , , 其中 t=0:0.05:2.5;z4=t.2 .* (0=t & t1 ) + ( t.2-1) .* (1=t & t2 ) +( t.2-2*t+1) .* (2=t & t=8 y=y,1; elseif x0=6 y=y,5-x0/2; elseif x0=4 y=y,2; elseif x0=0 y=y,sqrt(x0); endendplot(x,y)axis(0 10 0 2.5) %設置坐標軸范圍title(分段函數(shù)曲線); %加圖形標題xlabel(Variable

10、X); %加X軸說明ylabel(Variable Y); %加Y軸說明text(2,1.3,y=x1/2);%在指定位置 %添加圖形說明text(4.5,1.9,y=2);text(7.3,1.5,y=5-x/2);text(8.5,0.9,y=1);04246( )5/26818xxxf xxxx,演示在繪圖窗口演示在繪圖窗口 直接修改操作直接修改操作if x04 y=y, sqrt(x0); elseif x06 y=y,2; elseif x08 y=y, 5-x0/2; else y=y,1; end 3. 圖形保持圖形保持 一般情況下,繪圖命令每執(zhí)行一次就刷新當前圖形窗口,圖形窗口

11、原有圖形將不復存在。若希望在已存在的圖形上再繼續(xù)添加新的圖形,可使用圖形保持命令hold。hold on/off命令控制是保持原有圖形還是刷新原有圖形,不帶參數(shù)的hold命令在兩種狀態(tài)之間進行切換。 例例5.6 用圖形保持功能在同一坐標內繪制曲線用圖形保持功能在同一坐標內繪制曲線y=2e-0.5xsin(2x) 及其及其 包絡線。包絡線。 程序如下:x=(0:pi/100:2*pi);y1=2*exp(-0.5*x)*1,-1;y2=2*exp(-0.5*x).*sin(2*pi*x);plot(x,y1,b:);axis(0,2*pi,-2,2); %設置坐標hold on; %設置圖形保持

12、狀態(tài)plot(x,y2,k);legend(包絡線,包絡線,曲線y); %加圖例hold off; %關閉圖形保持grid %網(wǎng)格線控制 4. 圖形窗口的分割圖形窗口的分割 圖形窗口的分割成多個繪圖區(qū),在各繪圖區(qū)分別繪制圖形。subplot函數(shù)的調用格式為: subplot(m,n,p)例5.7 在一個圖形窗口中以子圖形式同時繪制正弦、余弦、正切、余切曲線。 程序如下: x=linspace(0,2*pi,60); y=sin(x);z=cos(x); t=sin(x)./(cos(x)+eps); ct=cos(x)./(sin(x)+ eps ); subplot(2,2,1); plot

13、(x,y);title(sin(x);axis (0,2*pi,-1,1); subplot(2,2,2); plot(x,z);title(cos(x);axis (0,2*pi,1,1); subplot(2,2,3); plot(x,t);title(tangent(x);axis (0,2*pi,-40,40); subplot(2,2,4); plot(x,ct);title(cotangent(x);axis (0,2*pi,-40,40); 對圖形窗口靈活分割。請看下面的程序。對圖形窗口靈活分割。請看下面的程序。 x=linspace(0,2*pi,60); y=sin(x);z

14、=cos(x); t=sin(x)./(cos(x)+eps); ct=cos(x)./(sin(x)+eps); subplot(2,2,1); %選擇選擇22個區(qū)中的個區(qū)中的1號區(qū)號區(qū) stairs(x,y);title(sin(x)-1);axis (0,2*pi,-1,1); subplot(2,1,2); %選擇選擇21個區(qū)中的個區(qū)中的2號區(qū)號區(qū) stem(x,y);title(sin(x)-2);axis (0,2*pi,-1,1); subplot(4,4,3); %選擇選擇44個區(qū)中的個區(qū)中的3號區(qū)號區(qū) plot(x,y);title(sin(x);axis (0,2*pi,-

15、1,1); subplot(4,4,4); %選擇選擇44個區(qū)中的個區(qū)中的4號區(qū)號區(qū) plot(x,z);title(cos(x);axis (0,2*pi,-1,1); subplot(4,4,7); %選擇選擇44個區(qū)中的個區(qū)中的7號區(qū)號區(qū) plot(x,t);title(tangent(x);axis (0,2*pi,-40,40); subplot(4,4,8); %選擇選擇44個區(qū)中的個區(qū)中的8號區(qū)號區(qū) plot(x,ct);title(cotangent(x);axis (0,2*pi,-40,40); 5.1.3 繪制二維圖形的其他函數(shù)繪制二維圖形的其他函數(shù)1. 其他形式的線性直

16、角坐標圖其他形式的線性直角坐標圖在線性直角坐標系中,其他形式的圖形有在線性直角坐標系中,其他形式的圖形有條形圖條形圖、階梯圖階梯圖、桿圖桿圖和和填充圖填充圖等,所等,所采用的函數(shù)分別是:采用的函數(shù)分別是:bar(x,y,選項選項)stairs(x,y,選項選項)stem(x,y,選項選項)fill(x1,y1,選項選項1,x2,y2,選項選項2,) 例例5.8 分別以條形圖、填充圖、階梯圖和桿圖分別以條形圖、填充圖、階梯圖和桿圖形式繪制曲線形式繪制曲線y=2e-0.5x。 程序如下:程序如下: x=0:0.35:7; y=2*exp(-0.5*x); subplot(2,2,1);bar(x,

17、y,g); title(bar(x,y,g);axis(0,7,0,2); subplot(2,2,2);fill(x,y,r); title(fill(x,y,r);axis(0,7,0,2); subplot(2,2,3);stairs(x,y,b); title(stairs(x,y,b);axis(0,7,0,2); subplot(2,2,4);stem(x,y,k); title(stem(x,y,k);axis(0,7,0,2); 2極坐標圖極坐標圖polar函數(shù)用來繪制極坐標圖,其調用格式為:函數(shù)用來繪制極坐標圖,其調用格式為:polar(theta,rho,選項選項)其中其中

18、theta為極坐標極角,為極坐標極角,rho為極坐標矢徑,選為極坐標矢徑,選項的內容與項的內容與plot函數(shù)相似。函數(shù)相似。例例5.9 繪制繪制=sin(2)cos(2)的極坐標圖。的極坐標圖。 程序如下:程序如下: theta=0:0.01:2*pi; rho=sin(2*theta).*cos(2*theta); polar(theta,rho,k); 3對數(shù)坐標對數(shù)坐標 圖形圖形 MATLAB提供了繪制對數(shù)和半對數(shù)坐標曲線的提供了繪制對數(shù)和半對數(shù)坐標曲線的函數(shù),調用格式為:函數(shù),調用格式為: semilogx(x1,y1,選項選項1,x2,y2,選項選項2,) semilogy(x1,y

19、1,選項選項1,x2,y2,選項選項2,) loglog(x1,y1,選項選項1,x2,y2,選項選項2,) 例例5.10 繪制繪制y=10 x2的對數(shù)坐標圖并與直角線的對數(shù)坐標圖并與直角線性坐標圖進行比較。性坐標圖進行比較。 例例5.10 繪制繪制y=10 x2的對數(shù)坐標圖并與直角線性坐標的對數(shù)坐標圖并與直角線性坐標圖進行比較。圖進行比較。 程序如下:程序如下: x=0:0.1:10; y=10*x.*x; subplot(2,2,1);plot(x,y);title(plot(x,y);grid on; subplot(2,2,2);semilogx(x,y);title(semilogx

20、(x,y); grid on; subplot(2,2,3);semilogy(x,y);title(semilogy(x,y); grid on; subplot(2,2,4);loglog(x,y);title(loglog(x,y);grid on; 4. 對函數(shù)對函數(shù) 自適應采樣自適應采樣 的繪圖函數(shù)的繪圖函數(shù)fplot函數(shù)的調用格式為:函數(shù)的調用格式為: fplot(fname,lims,tol,選項選項)例例5.11 用用fplot函數(shù)繪制函數(shù)繪制f(x)=cos(tan(x)的的曲線。曲線。 先建立函數(shù)文件先建立函數(shù)文件myf.m: function y=myf(x) y=cos

21、(tan(pi*x); 再用再用fplot函數(shù)繪制函數(shù)繪制myf.m函數(shù)的曲線:函數(shù)的曲線: fplot(myf,-0.4,1.4,1e-4) 5. 其他形式的圖形其他形式的圖形MATLAB提供的繪圖函數(shù)還有很多,例如,用來表提供的繪圖函數(shù)還有很多,例如,用來表示各元素占總和的百分比的示各元素占總和的百分比的餅圖餅圖、復數(shù)的、復數(shù)的相量圖相量圖等等。等等。例例5.12 繪制圖形:繪制圖形:(1)某次考試優(yōu)秀、良好、中等、及格、不及格的人數(shù)分別某次考試優(yōu)秀、良好、中等、及格、不及格的人數(shù)分別為:為:7,17,23,19,5,試用餅圖作成績統(tǒng)計分析。,試用餅圖作成績統(tǒng)計分析。(2)繪制復數(shù)的相量圖

22、:繪制復數(shù)的相量圖:3+2i、4.5-i和和-1.5+5i。程序如下:程序如下:subplot(1,2,1);pie(7,17,23,19,5);title(餅圖餅圖);legend(優(yōu)秀優(yōu)秀,良好良好,中等中等,及格及格,不及格不及格);subplot(1,2,2);compass(3+2i,4.5-i,-1.5+5i);title(相量圖相量圖);根據(jù)需要查閱各種資料:幫助文檔、網(wǎng)上資料、有關書籍等!根據(jù)需要查閱各種資料:幫助文檔、網(wǎng)上資料、有關書籍等! 5.2 三維圖形三維圖形5.2.1 繪制 三維曲線 的基本函數(shù) plot3函數(shù)與plot函數(shù)用法十分相似,其調用格式為: plot3(x

23、1,y1,z1,選項1,x2,y2,z2,選項2,xn,yn,zn,選項n) 程序如下:程序如下: t=0:pi/50:2*pi; x=8*cos(t); y=4*sqrt(2)*sin(t); z=-4*sqrt(2)*sin(t); plot3(x,y,z,p); title(Line in 3-D Space);text(0,0,0,origin); xlabel(X),ylabel(Y),zlabel(Z);grid;222640 xyzyz例例5.13 5.13 繪制空間曲線。繪制空間曲線。8cos4 2sin2sinxtyttt 0 2z=-4(x1,y1,z1), (x2,y2,

24、z2), ,(xi,yi,zi),t1, t2, , ti,(x1,y1,z1), (x2,y2,z2), ,(xi,yi,zi), 5.2.2 三維曲面三維曲面繪制繪制 z=f(x,y)=x+y 在在0 51 4 范圍的曲面。范圍的曲面。在xoy平面內找出繪圖區(qū)域24個點 (x,y),0,11,12,13,14,15,10,21,22,23,24,25,20,31,32,33,34,35,30,41,42,43,44,45,40,11,12,13,14,15,10,10,20,30,401234501234500.511.52xyz0,1,1 1,1,2 2,1,3 3,1,4 4,1,5

25、5,1,60,2,2 1,2,3 2,2,4 3,2,5 4,2,6 5,2,70,3,3 1,3,4 2,3,5 3,3,6 4,3,7 5,3,80,4,4 1,4,5 2,4,6 3,4,7 4,4,8 5,4,9計算上面24個點 (x,y)對應的 z,得到空間的點(x,y,z)繪制繪制 z =f(x,y) =x+y 在在0 51 4 范圍的曲面。范圍的曲面。0,1,1 1,1,2 2,1,3 3,1,4 4,1,5 5,1,60,2,2 1,2,3 2,2,4 3,2,5 4,2,6 5,2,70,3,3 1,3,4 2,3,5 3,3,6 4,3,7 5,3,80,4,4 1,4,5

26、 2,4,6 3,4,7 4,4,8 5,4,9曲面上的點(x,y,z)012345012345012345012345111111222222333333444444123456234567345678456789XYZX,Y:平面網(wǎng)格坐標矩陣平面網(wǎng)格坐標矩陣 投影到投影到xoyxoy面繪圖區(qū)域中的網(wǎng)格面繪圖區(qū)域中的網(wǎng)格點點D(i,j)D(i,j) 的坐標為:的坐標為:( X(i,j),Y(i,j) ),( X(i,j),Y(i,j) ),此點的縱此點的縱坐標為:坐標為:Z(i,j)=Z(i,j)=f f(X(i,j),Y(i,j)(X(i,j),Y(i,j)5.2.2 三維曲面三維曲面5.

27、2.2 三維曲面三維曲面繪制繪制 z =f(x,y) =x+y 在在0 51 4 范圍的曲面。范圍的曲面。0,1,1 1,1,2 2,1,3 3,1,4 4,1,5 5,1,60,2,2 1,2,3 2,2,4 3,2,5 4,2,6 5,2,70,3,3 1,3,4 2,3,5 3,3,6 4,3,7 5,3,80,4,4 1,4,5 2,4,6 3,4,7 4,4,8 5,4,9曲面上的點(x,y,z)012345012345012345012345111111222222333333444444123456234567345678456789XYZ1234012345xy01234511

28、1*()1()o n e ss iXz eyx 111111123()*)4o n e sysYiz ex 5.2.2 三維曲面三維曲面1平面網(wǎng)格平面網(wǎng)格 坐標矩陣坐標矩陣 的生成的生成(1)利用矩陣運算生成。利用矩陣運算生成。x=a:dx:b; y=(c:dy:d);X=ones(size(y)*x;Y=y*ones(size(x);(2)利用利用meshgrid函數(shù)生成。函數(shù)生成。x=a:dx:b; y=c:dy:d;X,Y=meshgrid(x,y); 繪制繪制 z=f(x,y)=x+y 在在 不規(guī)則網(wǎng)格不規(guī)則網(wǎng)格 范圍的曲面。范圍的曲面。在xoy平面內找出繪圖區(qū)域24個點 (x,y),

29、0123450123450246810zxy0123450123450246810 xyz0246024602468100.31861.136 2.0295 2.9273 3.8632 5.26360.2036 0.7607 1.6476 2.9792 3.9826 5.36490.2329 0.8185 1.6712 3.3272 4.0777 5.07640.2521.1011.8173.077 3.72924.6231.2497 0.9399 1.2709 1.2959 1.3614 0.75032.0881 1.9005 1.9613 2.21552.112 1.99253.1612

30、2.7329 3.3653 2.9553 2.7979 2.92743.6738 4.2665 3.7177 4.0965 3.8822 3.97081.5683 2.0759 3.3004 4.2232 5.2245 6.01392.2917 2.6612 3.6089 5.1948 6.0946 7.35743.3941 3.5514 5.0365 6.2825 6.8756 8.00393.9257 5.3675 5.5348 7.1735 7.6113 8.59385.2.2 三維曲面(補充)三維曲面(補充) 程序如下:程序如下:x=7:29; y=16:35;x,y=meshgrid

31、(x,y); %在在5,2914,35區(qū)域生成網(wǎng)格坐標區(qū)域生成網(wǎng)格坐標z=2*x+5*y;k=find(z=126); %找出解的位置找出解的位置 ,序號,不是下標序號,不是下標x(k),y(k) %輸出對應位置的輸出對應位置的x,y即方程的解即方程的解例例5.14 已知已知6x30,15y36,求不定方程,求不定方程2x+5y=126的的整數(shù)解整數(shù)解。51015202530152025303500.511.52zxy01020301520253035050100150200250 xyz繪制 z=f(x,y)=2x+5y 曲面 2. 繪制三維曲面的函數(shù)繪制三維曲面的函數(shù) surf 函數(shù)和函數(shù)

32、和 mesh 函數(shù)的調用格式為:函數(shù)的調用格式為: mesh(x,y,z,c) surf(x,y,z,c)例例5.15 用三維曲面圖表現(xiàn)函數(shù)用三維曲面圖表現(xiàn)函數(shù)z=sin(y)cos(x)。 程序程序1: x=0:0.1:2*pi; x,y=meshgrid(x); z=sin(y).*cos(x); mesh(x,y,z); xlabel(x-axis),ylabel(y-axis),zlabel(z-axis);title(mesh);surf(x,y,z); 例例5.15 用三維曲面圖表現(xiàn)函數(shù)用三維曲面圖表現(xiàn)函數(shù)z=sin(y)cos(x)。程序程序2: x=0:0.1:2*pi;x,y

33、=meshgrid(x);z=sin(y).*cos(x); surf(x,y,z);xlabel(x-axis),ylabel(y-axis),zlabel(z-axis);title(surf); 程序程序3: x=0:0.1:2*pi;x,y=meshgrid(x);z=sin(y).*cos(x); plot3(x,y,z);xlabel(x-axis),ylabel(y-axis),zlabel(z-axis);title(plot3-1);grid; 例例5.16 繪制兩個直徑相等的圓管的相交圖形。繪制兩個直徑相等的圓管的相交圖形。cos( )sin( )xyrr程序如下程序如下:

34、m=30; % 圓 的 周邊 等分 份數(shù) n=1; %圓筒節(jié)數(shù) h=1.2;z= h *(0:n)/n; R=2;r= R *ones(size(z);theta=(0:m)/m*2*pi;x1=r*cos(theta);y1=r*sin(theta); %z1=z *ones(1,m+1);surf(x1,y1,z1); hold on;z2=z*ones(1,m+1) + 5;surf(x1,y1,z2);axis(-2,2,-2,2,0,10); 例例5.16 繪制兩個直徑相等的圓管的繪制兩個直徑相等的圓管的 相交圖形。相交圖形。程序如下程序如下:m=30;z=1.2*(0:m)/m;r

35、=ones(size(z);theta=(0:m)/m*2*pi;x1=r*cos(theta);y1=r*sin(theta); z1=z*ones(1,m+1); %生成第一個圓管的坐標矩陣生成第一個圓管的坐標矩陣x=(-m:2:m)/m;x2=x*ones(1,m+1);y2=r*cos(theta); %生成第二個圓管的坐標矩陣生成第二個圓管的坐標矩陣z2=r*sin(theta);surf(x1,y1,z1); %繪制豎立的圓管繪制豎立的圓管axis equal,axis offhold onsurf(x2,y2,z2); %繪制平放的圓管繪制平放的圓管axis equal,axis

36、 offtitle(兩個等直徑圓管的交線兩個等直徑圓管的交線);hold off思考:m=30; % 圓 的 周邊 等分 份數(shù) n=2; %圓筒節(jié)數(shù)h=2;z=h*(0:n)/n; %各節(jié)等長 改成 z=0 3 8; r1=5;r2=1;r=linspace(r1,r2,n+1); %各節(jié)圓環(huán)半徑成等差數(shù)列 改成 r=5 2 4 ; theta=(0:m)/m*2*pi;x1=r*cos(theta);y1=r*sin(theta); z1=z*ones(1,m+1);surf(x1,y1,z1); 網(wǎng)格矩陣的作用網(wǎng)格矩陣的作用 例例5.17 分析由函數(shù)分析由函數(shù)z=x2-2y2構成的曲面形狀

37、及與平面構成的曲面形狀及與平面z=a的交線。的交線。 程序如下:程序如下: x,y=meshgrid(-10:0.2:10); z1=(x.2-2*y.2)+eps; %第第1個曲面?zhèn)€曲面 a=input(a=?); z2=a*ones(size(x); %第第2個曲面?zhèn)€曲面 subplot(1,2,1);mesh(x,y,z1);hold on;mesh(x,y,z2); %分別畫出兩個曲面分別畫出兩個曲面 v=-10,10,-10,10,-100,100;axis(v);grid; %第第1子圖的坐標設置子圖的坐標設置 hold off; r0=abs(z1-z2)0.5);x(i)=Na

38、N;plot(x,y); 例例5.24 繪制兩個繪制兩個球面球面,其中一個球在另一個球里面,將外,其中一個球在另一個球里面,將外面的球裁掉一部分,使得能看見里面的球。面的球裁掉一部分,使得能看見里面的球。程序如下程序如下:x,y,z=sphere(20);%生成外面的大球生成外面的大球z1=z;z1(:,1:4)=NaN; %將大球裁掉一部分將大球裁掉一部分c1=ones(size(z1);surf(3*x, 3*y, 3*z1, c1);%生成里面的小球生成里面的小球hold onz2=z;c2=2*ones(size(z2);c2(:,1:4)=3*ones(size(c2(:,1:4);

39、surf(1.5*x,1.5*y,1.5*z2,c2);colormap(0,1,0;0.5,0,0;1,0,0);grid onhold off 橢球?對球平移,伸縮?5.4 隱函數(shù)繪圖隱函數(shù)繪圖(不求出(不求出 線線 或或 面面 上系列點的坐標矩陣,上系列點的坐標矩陣,而直接用函數(shù)式子繪圖。不同于數(shù)學中的隱函數(shù))而直接用函數(shù)式子繪圖。不同于數(shù)學中的隱函數(shù))MATLAB提供了一個ezplot函數(shù)繪制隱函數(shù)圖形,下面介紹其用法。(1) 對于顯函數(shù)f = f(x),ezplot函數(shù)的調用格式為:ezplot(f):在默認區(qū)間-2x2繪制f = f(x)的圖形。ezplot(f, a,b):在區(qū)間

40、axb繪制f = f(x)的圖形。(2) 對于隱函數(shù)f = f(x,y),ezplot函數(shù)的調用格式為:ezplot(f):在默認區(qū)間-2x2和-2y2繪制f(x,y) = 0的圖形。ezplot(f, xmin,xmax,ymin,ymax):在區(qū)間xminxxmax和yminyymax繪制f(x,y) = 0的圖形。ezplot(f, a,b):在區(qū)間axb和ay b繪制f(x,y) = 0的圖形(3) 對于參數(shù)方程x = x(t)和y = y(t),ezplot函數(shù)的調用格式為:ezplot(x,y):在默認區(qū)間0t2繪制x=x(t)和y=y(t)的圖形。ezplot(x,y, tmin

41、,tmax):在區(qū)間tmin t tmax繪制x=x(t)和y=y(t)的圖形。例例5.25 隱函數(shù)繪圖應用舉例。隱函數(shù)繪圖應用舉例。程序如下:程序如下:subplot(2,2,1);ezplot( x2+y2-9 );axis equal % 圓圓subplot(2,2,2);ezplot(x3+y3-5*x*y+1/5)subplot(2,2,3);ezplot(cos(tan(pi*x), 0,1)subplot(2,2,4);ezplot(8*cos(t),4*sqrt(2)*sin(t),0,2*pi) % 橢圓橢圓橢圓,雙曲線,拋物線?其它隱函數(shù)繪圖函數(shù):其它隱函數(shù)繪圖函數(shù):ezp

42、olar、ezcontour、 ezcontourf、ezplot3 、ezmesh 、ezsurf 等等。等等。繪制半徑為 8 的 球面:ezsurf(sqrt(64-x2 - y2), -8,8,-8,8); hold on;ezsurf(-sqrt(64-x2 - y2), -8,8,-8,8); hold off; sin( )cos( )sin( )sin( )cos( ),2rabraxbraaybz 00ezsurf(8*sin(a)*cos(b), 8*sin(a)*sin(b), 8*cos(a) );ezmesh(8*sin(a)*cos(b), 8*sin(a)*sin(

43、b), 8*cos(a) ,0,pi/2, 0,2*pi );(x,y,z)-(r,a,b) 5.5 低層繪圖操作低層繪圖操作 計算機屏幕計算機屏幕(Screen) 、圖形窗口圖形窗口(Figure)、用戶菜單用戶菜單(Uimenu)、用戶控件用戶控件(Uicontrol)、坐標軸坐標軸(Axes)、曲線曲線(Line)、曲面曲面(Surface)、文字文字(Text)、圖像圖像(image)、光源光源(Light)、區(qū)域塊區(qū)域塊(Patch) 方框方框(Rectangle)。5.5.1 圖形對象及其句柄圖形對象及其句柄 1. 圖形對象圖形對象 MATLAB把構成圖形的各個基本要素稱為圖形對象

44、。把構成圖形的各個基本要素稱為圖形對象。 2. 圖形對象句柄圖形對象句柄 MATLAB在創(chuàng)建每一個圖形對象時,都為該對象在創(chuàng)建每一個圖形對象時,都為該對象分配唯一的一個值,稱其為圖形對象句柄分配唯一的一個值,稱其為圖形對象句柄(Handle)。句柄是圖形對象的唯一標識符。句柄是圖形對象的唯一標識符。 0正整數(shù),如1,2,3,浮點數(shù),如15.23, 2. 圖形對象句柄圖形對象句柄 MATLAB在創(chuàng)建每一個圖形對象時,都為該對象在創(chuàng)建每一個圖形對象時,都為該對象分配唯一的一個值,稱其為圖形對象句柄分配唯一的一個值,稱其為圖形對象句柄(Handle)。句柄是圖形對象的唯一標識符。句柄是圖形對象的唯一

45、標識符。 MATLAB提供了提供了3個用于獲取已有圖形對象句柄的函個用于獲取已有圖形對象句柄的函數(shù):數(shù): gcf 獲取獲取當前當前圖形窗口的句柄圖形窗口的句柄(get current figure)。 gca 獲取獲取當前當前坐標軸的句柄坐標軸的句柄(get current axis)。 gco 獲取獲取最近被單擊最近被單擊的圖形對象的句柄的圖形對象的句柄(get current object)。 5.5.2 圖形對象屬性圖形對象屬性 1. 屬性名與屬性值屬性名與屬性值 MATLAB給每種對象的每一個屬性規(guī)定了一個名給每種對象的每一個屬性規(guī)定了一個名字,稱為字,稱為屬性名屬性名,而屬性名的取值

46、成為,而屬性名的取值成為屬性值屬性值。例。例如,如,LineStyle是曲線對象的一個屬性名,它的值決是曲線對象的一個屬性名,它的值決定著線型,取值可以是定著線型,取值可以是- 、:、-.、-或或none。 2. 屬性的操作屬性的操作 set函數(shù)的調用格式為:函數(shù)的調用格式為: set(句柄,屬性名句柄,屬性名1,屬性值,屬性值1,屬性名,屬性名2,屬性值,屬性值2,) get函數(shù)的調用格式為:函數(shù)的調用格式為: V=get(句柄,屬性名句柄,屬性名) 3. 對象的公共屬性對象的公共屬性 圖形對象具有各種各樣的屬性,有些屬性是所有對象共同圖形對象具有各種各樣的屬性,有些屬性是所有對象共同具備的

47、,有些則是各對象所特有的。具備的,有些則是各對象所特有的。 例例5.26 在同一坐標下畫紅、綠兩根不同曲線,希望獲得綠色在同一坐標下畫紅、綠兩根不同曲線,希望獲得綠色曲線的句柄,并對其進行設置。曲線的句柄,并對其進行設置。程序如下程序如下:x=0:pi/50:2*pi;y=sin(x);z=cos(x);plot(x,y,r,x,z,g);H=get(gca,Children); %獲取兩曲線句柄向量獲取兩曲線句柄向量Hfor k=1:length(H) if get(H(k),Color)=0 1 0 %0 1 0代表綠色代表綠色 Hg=H(k); %獲取綠色線條句柄獲取綠色線條句柄 end

48、endpause %便于觀察設置效果便于觀察設置效果set(Hg,LineStyle,:,Marker,p); %對綠色曲線進行設置對綠色曲線進行設置 5.5.3 圖形對象的創(chuàng)建圖形對象的創(chuàng)建 1. 圖形窗口對象圖形窗口對象 建立建立圖形窗口對象使用圖形窗口對象使用figure函數(shù)。調用該函函數(shù)。調用該函數(shù)的命令形式為:數(shù)的命令形式為: 句柄變量句柄變量=figure(屬性名屬性名1,屬性值,屬性值1,屬性名,屬性名2,屬性值屬性值2,) MATLAB為每個圖形窗口提供了很多屬性。這些屬性及其取值控為每個圖形窗口提供了很多屬性。這些屬性及其取值控制著圖形窗口對象。除公共屬性外,其他常用屬性:制

49、著圖形窗口對象。除公共屬性外,其他常用屬性:MenuBar屬屬性、性、Name屬性、屬性、Position屬性、屬性、Color屬性等。屬性等。補: Handle Graphics 幫助文檔中相關的函數(shù) clf(窗口句柄窗口句柄); % 清除清除當前繪圖窗口的內容當前繪圖窗口的內容 close(窗口句柄窗口句柄); % 關閉關閉當前繪圖窗口當前繪圖窗口 figure(窗口句柄窗口句柄) ; % 設置設置當前繪圖窗口當前繪圖窗口 例例5.27 建立一個圖形窗口。該圖形窗口沒有菜單建立一個圖形窗口。該圖形窗口沒有菜單條,標題名稱為條,標題名稱為“圖形窗口示例圖形窗口示例”,起始于屏幕,起始于屏幕左

50、下角、寬度和高度分別為左下角、寬度和高度分別為300像素點和像素點和150像素像素點,背景顏色為綠色,且當用戶從鍵盤按下任意點,背景顏色為綠色,且當用戶從鍵盤按下任意一個鍵時,將顯示一個鍵時,將顯示“Hello,Keyboard Key Pressed.”字樣。字樣。 命令如下:命令如下: hf=figure(Color,0,1,0,Position,1,1,300,150,. Name,圖形窗口示例圖形窗口示例,NumberTitle,off,MenuBar,none,. KeyPressFcn,disp(Hello,Keyboard Key Pressed.); 例例5.28 分別在分別在

51、4個不同的圖形窗口繪制出正弦、余弦、正切、個不同的圖形窗口繪制出正弦、余弦、正切、余切曲線。要求先建立一個圖形窗口并繪圖,然后每關閉一個余切曲線。要求先建立一個圖形窗口并繪圖,然后每關閉一個再建立下一個,直到建立第再建立下一個,直到建立第4個窗口并繪圖。個窗口并繪圖。程序如下:程序如下: x=linspace(0,2*pi,60); y=sin(x);z=cos(x);t=tan(x);ct=1./(t+eps); %命令組待用命令組待用 C4=figure(Name,cotangent(x),NumberTitle,. off);plot(x,ct);axis(0,2*pi,-40,40);

52、 C3=figure(Name,tangent(x),DeleteFcn,C4,. NumberTitle,off);plot(x,t);axis(0,2*pi,-40,40); C2=figure(Name,cos(x),DeleteFcn,C3,. NumberTitle,off);plot(x,z);axis(0,2*pi,-1,1); %先創(chuàng)建先創(chuàng)建1個圖形窗口并繪制曲線個圖形窗口并繪制曲線 figure(Name,sin(x),DeleteFcn,C2,NumberTitle,off); plot(x,y);axis(0,2*pi,-1,1); 2. 坐標軸對象坐標軸對象建立建立坐標

53、軸對象使用坐標軸對象使用axes函數(shù),調用它的命令形式為:函數(shù),調用它的命令形式為: 句柄變量句柄變量=axes(屬性名屬性名1,屬性,屬性值值1,屬性,屬性名名2,屬性值,屬性值2,)MATLAB為每個坐標軸對象提供了很多屬性。除公共屬性外,為每個坐標軸對象提供了很多屬性。除公共屬性外,還有其他常用屬性。還有其他常用屬性。補:cla(坐標軸句柄坐標軸句柄); 清除坐標軸對象中的圖形(子對象)delete( 任何圖形對象句柄句柄); 刪除圖形對象對象(包括其中的子對象)axes(坐標軸坐標軸句柄句柄); %設置設置當前當前坐標軸 例例5.29 利用坐標軸對象實現(xiàn)圖形窗口的任意分割。利用坐標軸對

54、象實現(xiàn)圖形窗口的任意分割。 程序如下:程序如下: clf; %清圖形窗口 x=linspace(0,2*pi,20);y=sin(x); axes(Posi,0.2,0.2,0.2,0.7); plot(y,x);title(sin(x)-1); axes(Posi,0.4,0.5,0.2,0.1); stairs(x,y);title(sin(x)-2); axes(Posi,0.55,0.6,0.25,0.3); stem(x,y); title(sin(x)-3); axes(Posi,0.55,0.2,0.25,0.3); stem(x,y); title(sin(x)-4); 3.

55、曲線對象 建立曲線對象使用line函數(shù),調用它的命令形式為: 句柄變量=line(x,y,z,屬性名1,屬性值1,屬性名2,屬性值2,) 其中對x,y,z的解釋與高層曲線函數(shù)plot和plot3等一樣,其余的解釋與前面介紹過的figure和axes函數(shù)類似。每個曲線對象也具有很多屬性。例例5.30 利用曲線對象繪制曲線。利用曲線對象繪制曲線。程序如下:程序如下:t=0:pi/100:pi/2;y1=sin(2*pi*t);y2=sqrt(3)/2*exp(-4*t).*sin(4*sqrt(3)*t+pi/3);figh=figure;axes(GridLineStyle,:,XLim,0,p

56、i/2,YLim,-1,1);line(XData,t,YData,y1,LineWidth,1);line(t,y2);grid on delete(曲線句柄) 4. 文字對象文字對象 使用使用text函數(shù)可以根據(jù)指定位置和屬性值添函數(shù)可以根據(jù)指定位置和屬性值添加文字說明,并保存句柄。調用該函數(shù)的命加文字說明,并保存句柄。調用該函數(shù)的命令形式為:令形式為: 句柄變量句柄變量=text(x,y,z,說明文字說明文字,屬性屬性名名1,屬性,屬性值值1,屬性名,屬性名2,屬性值,屬性值2,) 其中說明文字中除使用標準的其中說明文字中除使用標準的ASCII字符外,字符外,還可使用還可使用LATEX格

57、式的控制字符。格式的控制字符。 除公共屬性外,文字對象還有其他常用屬性。除公共屬性外,文字對象還有其他常用屬性。 例例5.31 利用曲線對象繪制曲線和并利用文字對象完成標利用曲線對象繪制曲線和并利用文字對象完成標注。注。程序如下:程序如下:theta=-pi:.1:pi;y1=sin(theta);y2=cos(theta);h=line(theta,y1,LineStyle,:,Color,g);line(theta,y2,LineStyle,-,Color,b);xlabel(-pi leq theta leq pi)ylabel(sin(theta)title(Plot of sin(t

58、heta)text(-pi/4,sin(-pi/4),leftarrow sin(-pidiv4),FontSize,12)set(h,Color,r,LineWidth,2) %改變曲線改變曲線1的顏色和的顏色和線寬線寬 5. 曲面對象曲面對象 建立曲面對象使用建立曲面對象使用surface函數(shù),調用它的命令形函數(shù),調用它的命令形式為:式為: 句柄變量句柄變量=surface(x,y,z,屬性名屬性名1,屬性值,屬性值1,屬性,屬性名名2,屬性,屬性值值2,) 其中對其中對x,y,z的解釋與高層曲面函數(shù)的解釋與高層曲面函數(shù)mesh和和surf等等一樣,其余的解釋與前面介紹過的一樣,其余的解釋

59、與前面介紹過的figure和和axes等等函數(shù)類似。函數(shù)類似。 每個曲面對象也具有很多屬性。除公共屬性外,每個曲面對象也具有很多屬性。除公共屬性外,還有其他常用屬性。還有其他常用屬性。 例例5.32 利用曲面對象繪制三維曲面利用曲面對象繪制三維曲面z=sin(y)cos(x)。程序如下:程序如下: x=0:0.1:2*pi;x,y=meshgrid(x);z=sin(y).*cos(x);axes(view,-37.5,30);hs=surface(x,y,z,FaceColor,w,EdgeColor,flat); grid on; xlabel(x-axis),ylabel(y-axis)

60、,zlabel(z-axis); title(mesh-surf); pause;set(hs,FaceColor,flat); 6區(qū)域塊對象區(qū)域塊對象 區(qū)域塊對象是指一個區(qū)域塊對象是指一個任意多邊形區(qū)域任意多邊形區(qū)域。在。在MATLAB中,可以使用中,可以使用patch函數(shù)創(chuàng)建一個或多函數(shù)創(chuàng)建一個或多個多邊形。有兩種形式的個多邊形。有兩種形式的patch函數(shù),一種是高級函數(shù),一種是高級語法形式,另一種是低級語法形式。前者通過指語法形式,另一種是低級語法形式。前者通過指定每個小面的頂點坐標和顏色來創(chuàng)建區(qū)域塊對象,定每個小面的頂點坐標和顏色來創(chuàng)建區(qū)域塊對象,后者通過指定所有頂點的坐標和各小面的頂點和后者通過指定所有頂

溫馨提示

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

評論

0/150

提交評論