MATLAB三維立體繪圖.ppt_第1頁(yè)
MATLAB三維立體繪圖.ppt_第2頁(yè)
MATLAB三維立體繪圖.ppt_第3頁(yè)
MATLAB三維立體繪圖.ppt_第4頁(yè)
MATLAB三維立體繪圖.ppt_第5頁(yè)
已閱讀5頁(yè),還剩59頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、MATLAB 程式設(shè)計(jì)入門(mén)篇三維立體繪圖,4-1 基本立體繪圖指令,mesh 和 surf: mesh:可畫(huà)出立體的網(wǎng)狀圖(Mesh Plots) surf:可畫(huà)出立體的曲面圖(Surface Plots) 範(fàn)例4-1:plotxyz001.m,z = 0 2 1; 3 2 4; 4 4 4; 7 6 8; mesh(z); xlabel(X 軸 = column index);% X 軸的說(shuō)明文字 ylabel(Y 軸 = row index);% Y 軸的說(shuō)明文字,4-1 基本立體繪圖指令,範(fàn)例4-1 :plotxyz001.m,4-1 基本立體繪圖指令,範(fàn)例4-2 :plotxyz002

2、.m 若要將與曲面對(duì)應(yīng)的 x 座標(biāo)和 y 座標(biāo)都一併畫(huà)出來(lái),還是可以使用 mesh 指令,z = 0 2 1; 3 2 4; 4 4 4; 7 6 8; mesh(z); xlabel(X 軸 = column index);% X 軸的說(shuō)明文字 ylabel(Y 軸 = row index);% Y 軸的說(shuō)明文字 for i=1:size(z,1) for j=1:size(z,2) h=text(j, i, z(i,j), num2str(z(i, j);% 標(biāo)示曲面高度 set(h, hori, center, vertical, bottom, color, r); % 改變位置及顏色

3、 end end,4-1 基本立體繪圖指令,範(fàn)例4-2 :plotxyz002.m,4-1 基本立體繪圖指令,範(fàn)例4-3 :plotxyz011.m meshgrid 的作用是產(chǎn)生 x 及 y (均為向量) 為基準(zhǔn)的格子點(diǎn) (Grid Points),其輸出為 xx 及 yy(均為矩陣),分別代表格子點(diǎn)的 x 座標(biāo)及 y 座標(biāo)。,4-1 基本立體繪圖指令,範(fàn)例4-3 :plotxyz011.m,x = 3:6; y = 5:9; xx, yy = meshgrid(x, y);% xx 和 yy 都是矩陣 zz = xx.*yy;% 計(jì)算函數(shù)值 zz,也是矩陣 subplot(2,2,1);

4、mesh(xx); title(xx); axis tight subplot(2,2,2); mesh(yy); title(yy); axis tight subplot(2,2,3); mesh(xx, yy, zz); title(zz 對(duì) xx 及 yy 作圖); axis tight colormap(zeros(1,3);% 以黑色呈現(xiàn),4-1 基本立體繪圖指令,範(fàn)例4-3 :plotxyz011.m,範(fàn)例4-4 :plotxyz01.m使用 linspace 來(lái)產(chǎn)生較密集的資料,以便畫(huà)出由函數(shù) 形成的立體網(wǎng)狀圖,x = linspace(-2, 2, 25);% 在 x 軸 -

5、2,2 之間取 25 點(diǎn) y = linspace(-2, 2, 25);% 在 y 軸 -2,2 之間取 25 點(diǎn) xx, yy = meshgrid(x, y);% xx 和 yy 都是 2525 的矩陣 zz = xx.*exp(-xx.2-yy.2); % 計(jì)算函數(shù)值,zz 也是 2525 的矩陣 mesh(xx, yy, zz);% 畫(huà)出立體網(wǎng)狀圖,4-1 基本立體繪圖指令,4-1 基本立體繪圖指令,範(fàn)例4-4 :plotxyz01.m,範(fàn)例4-5 :plotxyz01.msurf 和 mesh 指令的用法類(lèi)似,x = linspace(-2, 2, 25);% 在 x 軸 -2,2

6、 之間取 25 點(diǎn) y = linspace(-2, 2, 25);% 在 y 軸 -2,2 之間取 25 點(diǎn) xx,yy = meshgrid(x, y);% xx 和 yy 都是 2525 的矩陣 zz = xx.*exp(-xx.2-yy.2);% zz 也是 252 的矩陣 surf(xx, yy, zz);% 畫(huà)出立體曲面圖,4-1 基本立體繪圖指令,4-1 基本立體繪圖指令,範(fàn)例4-5 :plotxyz01.m,4-1 基本立體繪圖指令,peaks: 為了方便測(cè)試立體繪圖,MATLAB 提供了一個(gè) peaks 函數(shù),可產(chǎn)生一個(gè)凹凸有致的曲面,包含了三個(gè)局部極大點(diǎn)(Local Max

7、ima)及三個(gè)局部極小點(diǎn)(Local Minima) 其方程式為:,4-1 基本立體繪圖指令,畫(huà)出此函數(shù)的最快方法,即是在 MATLAB 命令視窗直接鍵入 peaks,可得到下列方程式,z = 3*(1-x).2.*exp(-(x.2) - (y+1).2) . - 10*(x/5 - x.3 - y.5).*exp(-x.2-y.2) . - 1/3*exp(-(x+1).2 - y.2),4-1 基本立體繪圖指令,peaks的圖形,4-1 基本立體繪圖指令,meshz: meshz 指令有將曲面加上圍裙或舞臺(tái)的效果 範(fàn)例4-6:plotxyz03.m,x, y, z = peaks; me

8、shz(x,y,z); axis tight;,4-1 基本立體繪圖指令,範(fàn)例4-6:plotxyz03.m,4-1 基本立體繪圖指令,waterfall: waterfall 指令可在 x 方向或 y 方向產(chǎn)生水流效果 範(fàn)例4-7:plotxyz04.m,x, y, z = peaks; waterfall(x,y,z); axis tight;,4-1 基本立體繪圖指令,範(fàn)例4-7:plotxyz04.m,4-1 基本立體繪圖指令,meshc: meshc 可同時(shí)畫(huà)出網(wǎng)狀圖與等高線(Contours) 範(fàn)例4-8:plotxyz05.m,x, y, z = peaks; meshc(x,

9、y, z); axis tight;,4-1 基本立體繪圖指令,範(fàn)例4-8:plotxyz05.m,4-1 基本立體繪圖指令,plot3: plot3 指令可畫(huà)出三度空間中的曲線 範(fàn)例4-9:plotxyz06.m,t = linspace(0,20*pi, 501); % 在 0 及 20*pi 中間取 501 點(diǎn) plot3(t.*sin(t), t.*cos(t), t); % 畫(huà)出 tsin(t),tcos(t),t 的曲線,4-1 基本立體繪圖指令,範(fàn)例4-9:plotxyz06.m,4-1 基本立體繪圖指令,plot3: 亦可同時(shí)畫(huà)出兩條三度空間中的曲線 範(fàn)例4-10:plotxy

10、z07.m,t = linspace(0, 10*pi, 501); plot3(t.*sin(t), t.*cos(t), t, t.*sin(t), t.*cos(t), -t);% 同時(shí)畫(huà)兩條曲線,4-1 基本立體繪圖指令,範(fàn)例4-10:plotxyz07.m,4-1 基本立體繪圖指令,plot3: 如果輸入引數(shù)是三個(gè)大小相同的矩陣 x、y、z,那麼 plot3 會(huì)依序畫(huà)出每個(gè)行向量在三度空間所對(duì)應(yīng)的曲線 範(fàn)例4-11:plotxyz08.m,x, y = meshgrid(-2:0.1:2); z = y.*exp(-x.2-y.2); plot3(x, y, z);,4-1 基本立體

11、繪圖指令,範(fàn)例4-11:plotxyz08.m,4-1 基本立體繪圖指令,plot3: 上例中,所有的資料點(diǎn)都必需是在格子點(diǎn)上,MATLAB 才能根據(jù)每點(diǎn)的高度來(lái)作圖。如果所給的資料點(diǎn)不在格子點(diǎn)上,我們必需先用 griddata 指令來(lái)進(jìn)行內(nèi)插法以產(chǎn)生格子點(diǎn),4-1 基本立體繪圖指令,範(fàn)例4-12:plotxyz09.m,x = 6*rand(100,1)-3; % x 為介於 -3, 3 的 100 點(diǎn)亂數(shù) y = 6*rand(100,1)-3; % y 為介於 -3, 3 的 100 點(diǎn)亂數(shù) z = peaks(x, y); % z 為 peaks 指令產(chǎn)生的 100 點(diǎn)輸出 X, Y

12、= meshgrid(-3:0.1:3); Z = griddata(x, y, z, X, Y, cubic); mesh(X, Y, Z); hold on plot3(x, y, z, ., MarkerSize, 16);% 晝出 100 個(gè)取樣 hold off axis tight,4-1 基本立體繪圖指令,範(fàn)例4-12:plotxyz09.m,4-1 基本立體繪圖指令,整理:基本三維立體繪圖指令的列表,4-1 基本立體繪圖指令,整理:基本三維立體繪圖指令的列表,4-1 基本立體繪圖指令,ezmesh, ezsurf: 如果我們只是要很快地檢視一個(gè)具有二個(gè)輸入的函數(shù)的圖形,就可以使

13、用 ezmesh 或是 ezsurf 等來(lái)快速地畫(huà)出函數(shù)的曲面圖形 範(fàn)例4-13:plotxyz091.m,subplot(2,2,1);ezmesh(sin(x)/x*sin(y)/y); subplot(2,2,2);ezsurf(sin(x*y)/(x*y); subplot(2,2,3);ezmeshc(sin(x)/x*sin(y)/y); subplot(2,2,4);ezsurfc(sin(x*y)/(x*y);,4-1 基本立體繪圖指令,範(fàn)例4-13:plotxyz091.m,4-2 立體圖形與圖軸的基本技巧,hidden off: 在繪製網(wǎng)狀圖時(shí),MATLAB 會(huì)隱藏被遮蓋的

14、網(wǎng)線,若要使被遮蓋的網(wǎng)線亦能呈現(xiàn)出來(lái),可用 hidden off 指令 若再鍵入 hidden on,則恢復(fù)原先的設(shè)定 範(fàn)例4-14:plotxyz10.m,x,y,z = peaks; mesh(x,y,z); hidden off axis tight,4-2 立體圖形與圖軸的基本技巧,範(fàn)例4-14:plotxyz10.m,4-2 立體圖形與圖軸的基本技巧,整理:以 on/off 來(lái)切換的指令:,4-2 立體圖形與圖軸的基本技巧,rotate3d on: 若要能夠旋轉(zhuǎn)立體圖形,可已在產(chǎn)生 3D 圖形之後(例如輸入 peaks 之後),再輸入rotate3d on,此時(shí)您可以壓下滑鼠左鍵來(lái)拖

15、曳圖軸,以選取最理想的觀測(cè)角度。 也可以點(diǎn)選圖形視窗上面的 圖示,就可以開(kāi)始旋轉(zhuǎn)立體圖形。,4-2 立體圖形與圖軸的基本技巧,三維曲線的觀測(cè)角度: 一般而言,三維曲線的觀測(cè)角度是由 Azimuth 及 Elevation 來(lái)決定,4-2 立體圖形與圖軸的基本技巧,對(duì)二維圖形而言,預(yù)設(shè)值為 Azimuth = 0,Elevation = 90;對(duì)三維圖形而言,預(yù)設(shè)值為 Azimuth = -37.5,Elevation = 30。若要改變觀測(cè)角度,可用 view 指令 範(fàn)例4-15:plotxyz11.m,peaks; view(0,-30);,4-2 立體圖形與圖軸的基本技巧,範(fàn)例4-15:p

16、lotxyz11.m,4-2 立體圖形與圖軸的基本技巧,NaN: 有時(shí)候我們希望將曲面圖切掉一部份,以呈現(xiàn)不同的效果,此時(shí)可用 NaN 或 nan(Not a Number,即“非數(shù)值”)來(lái)取代矩陣某一部份的值,MATLAB 一碰到 NaN,就會(huì)“鏤空” 範(fàn)例4-16:plotxyz12.m,X, Y, Z = peaks; Z(10:20,10:20) = nan;% 將 Z 矩陣的一部分代換為 nan surf(X, Y, Z); axis tight,4-2 立體圖形與圖軸的基本技巧,範(fàn)例4-16:plotxyz12.m,4-3 曲面顏色的控制,colorbar: 利用 colorbar

17、 指令,可顯示 MATLAB 如何以不同顏色來(lái)代表曲面的高度 例如先輸入peaks,再輸入colorbar,4-3 曲面顏色的控制,整理:常用顏色的 RGB 成分:,4-3 曲面顏色的控制,colormap: MATLAB 預(yù)設(shè)的顏色對(duì)應(yīng)表可由 colormap 得知 cm 是一個(gè) 643 的矩陣,因此 MATLAB 在畫(huà)圖時(shí),會(huì)把 cm 第一列的顏色設(shè)定給曲面的最高點(diǎn),把 cm 的最後一列的顏色設(shè)定給曲面的最低點(diǎn),其餘高度的顏色則依線性內(nèi)插法來(lái)決定, cm = colormap; size(cm) ans = 64 3,4-3 曲面顏色的控制,colormap: 改變顏色對(duì)應(yīng)表,可得到不同顏

18、色的曲面 ,欲改變顏色對(duì)應(yīng)表,也是用 colormap 指令 範(fàn)例4-17:plotxyz13.m,peaks; colormap(rand(64,3); % 以亂數(shù)產(chǎn)生顏色對(duì)應(yīng)表 colorbar;,4-3 曲面顏色的控制,範(fàn)例4-17:plotxyz13.m,4-3 曲面顏色的控制,整理:MATLAB 現(xiàn)成的顏色對(duì)照表:,4-3 曲面顏色的控制,cool: 使您的曲面使用感覺(jué)較冷的顏色 範(fàn)例4-18:plotxyz14.m,peaks; colormap cool; colorbar,4-3 曲面顏色的控制,範(fàn)例4-18:plotxyz14.m,4-3 曲面顏色的控制,surf和mesh的

19、顏色設(shè)定: 除了以高度來(lái)設(shè)定顏色之外,surf 及 mesh 指令都可以接受第 4 個(gè)輸入引數(shù)來(lái)作為設(shè)定顏色的依據(jù) 例如:以曲面的斜率來(lái)設(shè)定顏色 範(fàn)例4-19:plotxyz15.m,X, Y, Z = peaks; surf(X, Y, Z, gradient(Z); axis tight; colormap hot,4-3 曲面顏色的控制,範(fàn)例4-19:plotxyz15.m,4-3 曲面顏色的控制,surf和mesh的顏色設(shè)定: 例如:以曲面的曲率來(lái)設(shè)定顏色 範(fàn)例4-20:plotxyz16.m,X, Y, Z = peaks; surf(X, Y, Z, del2(Z); axis t

20、ight; colormap hot,4-3 曲面顏色的控制,範(fàn)例4-20:plotxyz16.m,4-3 曲面顏色的控制,briten: 我們可用 brighten 指令來(lái)使顏色對(duì)照表變亮或變暗 範(fàn)例4-21:plotxyz17.m,colormap copper subplot(3, 1, 1); rgbplot(colormap); brighten(colormap, 0.5) subplot(3, 1, 2); rgbplot(colormap); brighten(colormap, -0.8) subplot(3, 1, 3); rgbplot(colormap);,4-3 曲面顏色的控制,範(fàn)例4-21:plotxyz17.m,4-3 曲面顏色的控制,True Color: 前例MATLAB 決定顏色的方法稱(chēng)為索引顏色(Indexed C

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論