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

下載本文檔

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

文檔簡介

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

2、xy 例例5.1 在在0X2 區(qū)間內(nèi),繪制曲線區(qū)間內(nèi),繪制曲線 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)當(dāng)x是向量,y是有一維與x同維的矩陣時,則繪制出多根不同色彩的曲線。曲線條數(shù)等于y矩陣的另一維數(shù),x被作為這些曲線共同的橫

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

4、數(shù)函數(shù)含選項的plot函數(shù)調(diào)用格式為:plot(x1,y1,選項1,x2,y2, 選項2,xn,yn,選項n)選項選項 說明曲線的 線型、顏色或標(biāo)記符號 例例5.3 用不同線型和顏色在同一坐標(biāo)內(nèi)繪制曲線用不同線型和顏色在同一坐標(biāo)內(nèi)繪制曲線y=2e-0.5x sin(2x)及其包絡(luò)線。及其包絡(luò)線。程序如下: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);01

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

6、,左縱坐標(biāo)左縱坐標(biāo)用于用于x1-y1x1-y1數(shù)據(jù)對,數(shù)據(jù)對,右縱坐標(biāo)右縱坐標(biāo)用于用于x2-y2x2-y2數(shù)據(jù)對。數(shù)據(jù)對。 例例5.4 用不同標(biāo)度在同一坐標(biāo)內(nèi)繪制曲線用不同標(biāo)度在同一坐標(biāo)內(nèi)繪制曲線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. 圖形標(biāo)注圖形標(biāo)注 有關(guān)圖形標(biāo)注函數(shù)的調(diào)用格式為:有關(guān)圖形標(biāo)注函數(shù)的調(diào)用格式為: title(圖形名稱圖形名稱) xlabel(x軸說明軸說明) ylabel(y軸說明軸說明) text(x,y,圖形說明圖形說明) legend(圖例圖例1,圖例圖例2,) 2. 坐標(biāo)控制坐標(biāo)控制函數(shù)的調(diào)用格式為:函數(shù)的調(diào)用格式為:axis(xmin xmax ymin ymax zmin zmax)axis函數(shù)功能豐富,常用的用法還有:函數(shù)功能豐富,常用的用法還有:axis equal 縱、橫坐標(biāo)軸采用等長刻度縱、橫坐標(biāo)軸采用等長刻度axis square 產(chǎn)生正方形坐標(biāo)系產(chǎn)生正方形

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

9、42011, 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) %設(shè)置坐標(biāo)軸范圍title(分段函數(shù)曲線); %加圖形標(biāo)題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í)行一次就刷新當(dāng)前圖形窗口,圖形窗

11、口原有圖形將不復(fù)存在。若希望在已存在的圖形上再繼續(xù)添加新的圖形,可使用圖形保持命令hold。hold on/off命令控制是保持原有圖形還是刷新原有圖形,不帶參數(shù)的hold命令在兩種狀態(tài)之間進(jìn)行切換。 例例5.6 用圖形保持功能在同一坐標(biāo)內(nèi)繪制曲線用圖形保持功能在同一坐標(biāo)內(nèi)繪制曲線y=2e-0.5xsin(2x) 及其及其 包絡(luò)線。包絡(luò)線。 程序如下: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); %設(shè)置坐標(biāo)hold on; %設(shè)置圖形保

12、持狀態(tài)plot(x,y2,k);legend(包絡(luò)線,包絡(luò)線,曲線y); %加圖例hold off; %關(guān)閉圖形保持grid %網(wǎng)格線控制 4. 圖形窗口的分割圖形窗口的分割 圖形窗口的分割成多個繪圖區(qū),在各繪圖區(qū)分別繪制圖形。subplot函數(shù)的調(diào)用格式為: 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); plo

13、t(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);

14、z=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、直角坐標(biāo)圖其他形式的線性直角坐標(biāo)圖在線性直角坐標(biāo)系中,其他形式的圖形有在線性直角坐標(biāo)系中,其他形式的圖形有條形圖條形圖、階梯圖階梯圖、桿圖桿圖和和填充圖填充圖等,所等,所采用的函數(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極坐標(biāo)圖極坐標(biāo)圖polar函數(shù)用來繪制極坐標(biāo)圖,其調(diào)用格式為:函數(shù)用來繪制極坐標(biāo)圖,其調(diào)用格式為:polar(theta,rho,選項選項)其中其

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

19、y1,選項選項1,x2,y2,選項選項2,) loglog(x1,y1,選項選項1,x2,y2,選項選項2,) 例例5.10 繪制繪制y=10 x2的對數(shù)坐標(biāo)圖并與直角線的對數(shù)坐標(biāo)圖并與直角線性坐標(biāo)圖進(jìn)行比較。性坐標(biāo)圖進(jìn)行比較。 例例5.10 繪制繪制y=10 x2的對數(shù)坐標(biāo)圖并與直角線性坐標(biāo)的對數(shù)坐標(biāo)圖并與直角線性坐標(biāo)圖進(jìn)行比較。圖進(jìn)行比較。 程序如下:程序如下: 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(semilog

20、x(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ù) 自適應(yīng)采樣自適應(yīng)采樣 的繪圖函數(shù)的繪圖函數(shù)fplot函數(shù)的調(diào)用格式為:函數(shù)的調(diào)用格式為: fplot(fname,lims,tol,選項選項)例例5.11 用用fplot函數(shù)繪制函數(shù)繪制f(x)=cos(tan(x)的的曲線。曲線。 先建立函數(shù)文件先建立函數(shù)文件myf.m: function y=myf(x) y=co

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

22、圖:繪制復(fù)數(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)上資料、有關(guān)書籍等!根據(jù)需要查閱各種資料:幫助文檔、網(wǎng)上資料、有關(guān)書籍等! 5.2 三維圖形三維圖形5.2.1 繪制 三維曲線 的基本函數(shù) plot3函數(shù)與plot函數(shù)用法十分相似,其調(diào)用格式為: plot3(

23、x1,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平面內(nèi)找出繪圖區(qū)域24個點(diǎn) (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個點(diǎn) (x,y)對應(yīng)的 z,得到空間的點(diǎn)(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,

26、5 2,4,6 3,4,7 4,4,8 5,4,9曲面上的點(diǎn)(x,y,z)012345012345012345012345111111222222333333444444123456234567345678456789XYZX,Y:平面網(wǎng)格坐標(biāo)矩陣平面網(wǎng)格坐標(biāo)矩陣 投影到投影到xoyxoy面繪圖區(qū)域中的網(wǎng)格面繪圖區(qū)域中的網(wǎng)格點(diǎn)點(diǎn)D(i,j)D(i,j) 的坐標(biāo)為:的坐標(biāo)為:( X(i,j),Y(i,j) ),( X(i,j),Y(i,j) ),此點(diǎn)的縱此點(diǎn)的縱坐標(biāo)為:坐標(biāo)為: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曲面上的點(diǎn)(x,y,z)012345012345012345012345111111222222333333444444123456234567345678456789XYZ1234012345xy0123451

28、11*()1()o n e ss iXz eyx 111111123()*)4o n e sysYiz ex 5.2.2 三維曲面三維曲面1平面網(wǎng)格平面網(wǎng)格 坐標(biāo)矩陣坐標(biāo)矩陣 的生成的生成(1)利用矩陣運(yùn)算生成。利用矩陣運(yùn)算生成。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平面內(nèi)找出繪圖區(qū)域24個點(diǎn) (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 三維曲面(補(bǔ)充)三維曲面(補(bǔ)充) 程序如下:程序如下:x=7:29; y=16:35;x,y=meshgri

31、d(x,y); %在在5,2914,35區(qū)域生成網(wǎng)格坐標(biāo)區(qū)域生成網(wǎng)格坐標(biāo)z=2*x+5*y;k=find(z=126); %找出解的位置找出解的位置 ,序號,不是下標(biāo)序號,不是下標(biāo)x(k),y(k) %輸出對應(yīng)位置的輸出對應(yīng)位置的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ù)和函

32、數(shù)和 mesh 函數(shù)的調(diào)用格式為:函數(shù)的調(diào)用格式為: 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,

33、y=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;

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

36、s 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構(gòu)成的曲面形

37、狀及與平面構(gòu)成的曲面形狀及與平面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子圖的坐標(biāo)設(shè)置子圖的坐標(biāo)設(shè)置 hold off; r0=abs(z1-z2)0.5);x(i)=N

38、aN;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ù)繪圖(不求出(不求出 線線 或或 面面 上系列點(diǎn)的坐標(biāo)矩陣,上系列點(diǎn)的坐標(biāo)矩陣,而直接用函數(shù)式子繪圖。不同于數(shù)學(xué)中的隱函數(shù))而直接用函數(shù)式子繪圖。不同于數(shù)學(xué)中的隱函數(shù))MATLAB提供了一個ezplot函數(shù)繪制隱函數(shù)圖形,下面介紹其用法。(1) 對于顯函數(shù)f = f(x),ezplot函數(shù)的調(diào)用格式為:ezplot(f):在默認(rèn)區(qū)間-2x2繪制f = f(x)的圖形。ezplot(f, a,b):在

40、區(qū)間axb繪制f = f(x)的圖形。(2) 對于隱函數(shù)f = f(x,y),ezplot函數(shù)的調(diào)用格式為:ezplot(f):在默認(rèn)區(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ù)的調(diào)用格式為:ezplot(x,y):在默認(rèn)區(qū)間0t2繪制x=x(t)和y=y(t)的圖形。ezplot(x,y, tm

41、in,tmax):在區(qū)間tmin t tmax繪制x=x(t)和y=y(t)的圖形。例例5.25 隱函數(shù)繪圖應(yīng)用舉例。隱函數(shù)繪圖應(yīng)用舉例。程序如下:程序如下: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ù):e

42、zpolar、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)*si

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

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

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

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

47、備的,有些則是各對象所特有的。具備的,有些則是各對象所特有的。 例例5.26 在同一坐標(biāo)下畫紅、綠兩根不同曲線,希望獲得綠色在同一坐標(biāo)下畫紅、綠兩根不同曲線,希望獲得綠色曲線的句柄,并對其進(jìn)行設(shè)置。曲線的句柄,并對其進(jìn)行設(shè)置。程序如下:程序如下: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); %獲取綠色線條句柄獲取綠色線條句柄

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

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

50、屏幕左下角、寬度和高度分別為左下角、寬度和高度分別為300像素點(diǎn)和像素點(diǎn)和150像素像素點(diǎn),背景顏色為綠色,且當(dāng)用戶從鍵盤按下任意點(diǎn),背景顏色為綠色,且當(dāng)用戶從鍵盤按下任意一個鍵時,將顯示一個鍵時,將顯示“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個不同的圖形窗口繪制出正弦、余弦、正切、個不同的圖形窗口繪制出正弦、余弦、正切、余切曲線。要求先建立一個圖形窗口并繪圖,然后每關(guān)閉一個余切曲線。要求先建立一個圖形窗口并繪圖,然后每關(guān)閉一個再建立下一個,直到建立第再建立下一個,直到建立第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,4

52、0); 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. 坐標(biāo)軸對象坐標(biāo)軸對象建立建

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

54、標(biāo)軸對象實(shí)現(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);

55、3. 曲線對象 建立曲線對象使用line函數(shù),調(diào)用它的命令形式為: 句柄變量=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,

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

57、EX格式的控制字符。格式的控制字符。 除公共屬性外,文字對象還有其他常用屬性。除公共屬性外,文字對象還有其他常用屬性。 例例5.31 利用曲線對象繪制曲線和并利用文字對象完成標(biāo)利用曲線對象繪制曲線和并利用文字對象完成標(biāo)注。注。程序如下:程序如下: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 si

58、n(theta)text(-pi/4,sin(-pi/4),leftarrow sin(-pidiv4),FontSize,12)set(h,Color,r,LineWidth,2) %改變曲線改變曲線1的顏色和的顏色和線寬線寬 5. 曲面對象曲面對象 建立曲面對象使用建立曲面對象使用surface函數(shù),調(diào)用它的命令形函數(shù),調(diào)用它的命令形式為:式為: 句柄變量句柄變量=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-ax

60、is),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ù),一種是高級語法形式,另一種是低級語法形式。前者通過指語法形式,另一種是低級語法形式。前者通過指定每個小面的頂點(diǎn)坐標(biāo)和顏色來創(chuàng)建區(qū)域塊對象,定每個小面的頂點(diǎn)坐標(biāo)和顏色來創(chuàng)建區(qū)域塊對象,后者通過指定所有頂點(diǎn)的坐標(biāo)和各小面的頂點(diǎn)和后者通過指定

溫馨提示

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

評論

0/150

提交評論