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

下載本文檔

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

文檔簡介

MATLAB程序設(shè)計(jì)入門篇

三維立體繪圖CUMCM暑期培訓(xùn)4-1基本立體繪圖指令mesh和surf:mesh:可畫出立體的「網(wǎng)狀圖」(MeshPlots)surf:可畫出立體的「曲面圖」(SurfacePlots)范例4-1:

plotxyz001.mz=[021;324;444;768];mesh(z);xlabel('X

軸=columnindex'); %X軸的說明文字ylabel('Y

軸=rowindex'); %Y軸的說明文字4-1基本立體繪圖指令4-1基本立體繪圖指令范例4-2:plotxyz002.m

若要將與曲面對應(yīng)的x坐標(biāo)和y坐標(biāo)都一并畫出來,還可以使用mesh指令z=[021;324;444;768];mesh(z);xlabel('X

軸=columnindex'); %X軸的說明文字ylabel('Y

軸=rowindex'); %Y軸的說明文字fori=1:size(z,1) forj=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');%改變位置及顏色

endend4-1基本立體繪圖指令4-1基本立體繪圖指令范例4-3:plotxyz011.mmeshgrid

的作用是產(chǎn)生x及y(均為向量)為基準(zhǔn)的格子點(diǎn)(GridPoints),其輸出為xx及yy(均為矩陣),分別代表格子點(diǎn)的x坐標(biāo)及y坐標(biāo)。4-1基本立體繪圖指令范例4-3:plotxyz011.mx=3:6;y=5:9;[xx,yy]=meshgrid(x,y); %xx和yy

都是矩陣zz=xx.*yy; %計(jì)算函數(shù)值

zz,也是矩陣subplot(2,2,1);mesh(xx);title('xx');axistightsubplot(2,2,2);mesh(yy);title('yy');axistightsubplot(2,2,3);mesh(xx,yy,zz);title('zz對xx及yy

作圖');axistightcolormap(zeros(1,3)); %以黑色顯示4-1基本立體繪圖指令范例4-4:plotxyz01.m

使用linspace

來產(chǎn)生較密集的數(shù)據(jù),以便畫出由函數(shù)形成的立體網(wǎng)狀圖x=linspace(-2,2,25); %在x軸[-2,2]之間取25點(diǎn)y=linspace(-2,2,25); %在y軸[-2,2]之間取25點(diǎn)[xx,yy]=meshgrid(x,y); %xx和yy

都是25×25的矩陣zz=xx.*exp(-xx.^2-yy.^2); %計(jì)算函數(shù)值,zz

也是25×25的矩陣mesh(xx,yy,zz); %畫出立體網(wǎng)狀圖4-1基本立體繪圖指令4-1基本立體繪圖指令范例4-4:plotxyz01.m范例4-5:plotxyz01.m

surf和mesh指令的用法類似x=linspace(-2,2,25); %在x軸[-2,2]之間取25點(diǎn)y=linspace(-2,2,25); %在y軸[-2,2]之間取25點(diǎn)[xx,yy]=meshgrid(x,y); %xx和yy

都是25×25的矩陣zz=xx.*exp(-xx.^2-yy.^2); %zz

也是25×2的矩陣surf(xx,yy,zz); %畫出三維曲面圖4-1基本立體繪圖指令4-1基本立體繪圖指令范例4-5:plotxyz01.m4-1基本立體繪圖指令peaks:為了方便測試立體繪圖,MATLAB提供了一個(gè)peaks函數(shù),可產(chǎn)生一個(gè)凹凸有致的曲面,包含了三個(gè)局部極大點(diǎn)(LocalMaxima)及三個(gè)局部極小點(diǎn)(LocalMinima)其方程式為:

4-1基本立體繪圖指令畫出此函數(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

指令有將曲面加上「圍裙」或「舞臺」的效果范例4-6:plotxyz03.m[x,y,z]=peaks;meshz(x,y,z);axistight;4-1基本立體繪圖指令范例4-6:plotxyz03.m4-1基本立體繪圖指令waterfall:waterfall指令可在x方向或y方向產(chǎn)生水流效果范例4-7:plotxyz04.m[x,y,z]=peaks;waterfall(x,y,z);axistight;4-1基本立體繪圖指令范例4-7:plotxyz04.m4-1基本立體繪圖指令meshc:meshc

可同時(shí)畫出網(wǎng)狀圖與「等高線」(Contours)范例4-8:plotxyz05.m[x,y,z]=peaks;meshc(x,y,z);axistight;4-1基本立體繪圖指令范例4-8:plotxyz05.m4-1基本立體繪圖指令plot3:plot3指令可畫出三維空間中的曲線范例4-9:plotxyz06.mt=linspace(0,20*pi,501); %在0及20*pi中間取501點(diǎn)plot3(t.*sin(t),t.*cos(t),t); %畫出tsin(t),tcos(t),t

的曲線4-1基本立體繪圖指令范例4-9:plotxyz06.m4-1基本立體繪圖指令plot3:亦可同時(shí)畫出兩條三維空間中的曲線范例4-10:plotxyz07.mt=linspace(0,10*pi,501);plot3(t.*sin(t),t.*cos(t),t,t.*sin(t),t.*cos(t),-t); %同時(shí)畫兩條曲線4-1基本立體繪圖指令范例4-10:plotxyz07.m4-1基本立體繪圖指令plot3:如果輸入自變量是三個(gè)大小相同的矩陣x、y、z,那么plot3會依序畫出每個(gè)行向量在三維空間所對應(yīng)的曲線范例4-11:plotxyz08.m[x,y]=meshgrid(-2:0.1:2);z=y.*exp(-x.^2-y.^2);plot3(x,y,z);4-1基本立體繪圖指令范例4-11:plotxyz08.m4-1基本立體繪圖指令plot3:上例中,所有的數(shù)據(jù)點(diǎn)都必需是在格子點(diǎn)上,MATLAB才能根據(jù)每點(diǎn)的高度來作圖。如果所給的數(shù)據(jù)點(diǎn)不在格子點(diǎn)上,我們必需先用griddata

指令來進(jìn)行內(nèi)插法以產(chǎn)生格子點(diǎn)4-1基本立體繪圖指令范例4-12:plotxyz09.mx=6*rand(100,1)-3;%x為介于[-3,3]的100點(diǎn)隨機(jī)數(shù)y=6*rand(100,1)-3;%y為介于[-3,3]的100點(diǎn)隨機(jī)數(shù)z=peaks(x,y);%z為peaks指令產(chǎn)生的100點(diǎn)輸出[X,Y]=meshgrid(-3:0.1:3);Z=griddata(x,y,z,X,Y,'cubic');mesh(X,Y,Z);holdonplot3(x,y,z,'.','MarkerSize',16); %100個(gè)取樣holdoffaxistight4-1基本立體繪圖指令范例4-12:plotxyz09.m4-1基本立體繪圖指令整理:基本三維立體繪圖指令的列表類別指令說明網(wǎng)狀圖mesh,ezmesh立體網(wǎng)狀圖meshc,ezmeshc網(wǎng)狀圖加上等高線meshz網(wǎng)狀圖加上“圍裙”(或“舞臺”)曲面圖surf,ezsurf三維曲面圖surfc,ezsurfc曲面圖加上等高線surfl曲面圖加上光源4-1基本立體繪圖指令整理:基本三維立體繪圖指令的列表類別指令說明曲線圖plot3,ezplot3立體曲線圖低階函數(shù)surfaceSurf用到的低階指令line3Plot3用到的低階指令等高線contour,ezcontour平面上的等高線contour3空間中的等高線影像表示pcolor在二維平面中以顏色表示曲面的高度4-1基本立體繪圖指令ezmesh,ezsurf:如果我們只是要很快地觀察一個(gè)具有二個(gè)輸入的函數(shù)的圖形,就可以使用ezmesh或是ezsurf等來快速地畫出函數(shù)的曲面圖形范例4-13:plotxyz091.msubplot(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基本立體繪圖指令范例4-13:plotxyz091.m4-2立體圖形與圖軸的基本技巧hiddenoff:在繪制網(wǎng)狀圖時(shí),MATLAB會隱藏被遮蓋的網(wǎng)線,若要使被遮蓋的網(wǎng)線亦能呈現(xiàn)出來,可用hiddenoff指令若再鍵入hiddenon,則恢復(fù)原先的設(shè)定

范例4-14:plotxyz10.m[x,y,z]=peaks;mesh(x,y,z);hiddenoffaxistight4-2立體圖形與圖軸的基本技巧范例4-14:plotxyz10.m4-2立體圖形與圖軸的基本技巧整理:以on/off來切換的指令:指令說明hiddenon/off隱藏(on)或顯示(off)被遮蓋的網(wǎng)線。zoomon/off允許(on)或取消(off)以鼠標(biāo)點(diǎn)選來放大圖形。rotate3don/off允許(on)或取消(off)以鼠標(biāo)點(diǎn)選來旋轉(zhuǎn)三維圖軸。axison/off顯示(on)或不顯示(off)圖軸。boxon/off顯示(on)或不顯示(off)圖軸的外框。holdon/off在繪制新圖時(shí),保留(on)或消去(off)舊圖。moreon/off允許(on)或不允許(off)指令窗口的輸出暫停。echoon/off允許(on)或不允許(off)指令在文件內(nèi)執(zhí)行時(shí),逐一顯示在窗口。4-2立體圖形與圖軸的基本技巧rotate3don:若要能夠旋轉(zhuǎn)立體圖形,可已在產(chǎn)生3D圖形之后(例如輸入peaks之后),再輸入「rotate3don」,此時(shí)您可以按下鼠標(biāo)左鍵來拖曳圖軸,以選取最理想的觀測角度。也可以點(diǎn)選圖形窗口上面的圖標(biāo),就可以開始旋轉(zhuǎn)立體圖形。4-2立體圖形與圖軸的基本技巧三維曲線的觀測角度:一般而言,三維曲線的觀測角度是由Azimuth及Elevation來決定ElevationAzimuth觀測點(diǎn)原點(diǎn)xzy4-2立體圖形與圖軸的基本技巧對二維圖形而言,默認(rèn)值為Azimuth=0°,Elevation=90°;對三維圖形而言,默認(rèn)值為Azimuth=-37.5°,Elevation=30°。若要改變觀測角度,可用view指令范例4-15:plotxyz11.mpeaks;view([0,-30]);4-2立體圖形與圖軸的基本技巧范例4-15:plotxyz11.m4-2立體圖形與圖軸的基本技巧NaN:有時(shí)候我們希望將曲面圖切掉一部份,以呈現(xiàn)不同的效果,此時(shí)可用NaN

或nan(NotaNumber,即“非數(shù)值”)來取代矩陣某一部份的值,MATLAB一碰到NaN,就會“鏤空”范例4-16:plotxyz12.m[X,Y,Z]=peaks;Z(10:20,10:20)=nan;

%將Z矩陣的一部分代換為nansurf(X,Y,Z);axistight4-2立體圖形與圖軸的基本技巧范例4-16:plotxyz12.m4-3曲面顏色的控制colorbar:利用colorbar

指令,可顯示MATLAB如何以不同顏色來代表曲面的高度例如先輸入「peaks」,再輸入「colorbar」4-3曲面顏色的控制整理:常用顏色的RGB成分:顏色Red(紅色)Green(綠色)Blue(藍(lán)色)black(黑)000white(白)111red(紅)100green(綠)010blue(藍(lán))001yellow(黃)110magenta(錳紫)101cyan(青藍(lán))011gray(灰)0.50.50.5darkred(暗紅)0.500copper(銅色)10.620.4aquamarine(碧綠)0.4910.834-3曲面顏色的控制

colormap:MATLAB預(yù)設(shè)的顏色對應(yīng)表可由colormap

得知

cm是一個(gè)64×3的矩陣,因此MATLAB在畫圖時(shí),會把cm第一列的顏色設(shè)定給曲面的最高點(diǎn),把cm的最后一列的顏色設(shè)定給曲面的最低點(diǎn),其余高度的顏色則依線性內(nèi)插法來決定>>cm=colormap;>>size(cm)ans= 6434-3曲面顏色的控制colormap:改變顏色對應(yīng)表,可得到不同顏色的曲面,

欲改變顏色對應(yīng)表,也是用colormap

指令范例4-17:plotxyz13.mpeaks;colormap(rand(64,3));%以隨機(jī)數(shù)產(chǎn)生顏色對應(yīng)表colorbar;4-3曲面顏色的控制范例4-17:plotxyz13.m4-3曲面顏色的控制整理:MATLAB現(xiàn)成的顏色對照表:4-3曲面顏色的控制cool:使您的曲面使用感覺較冷的顏色范例4-18:plotxyz14.mpeaks;colormapcool;colorbar4-3曲面顏色的控制范例4-18:plotxyz14.m4-3曲面顏色的控制surf和mesh的顏色設(shè)定:除了以高度來設(shè)定顏色之外,surf及mesh指令都可以接受第4個(gè)輸入自變量來作為設(shè)定顏色的依據(jù)例如:以曲面的斜率來設(shè)定顏色

范例4-19:plotxyz15.m[X,Y,Z]=peaks;surf(X,Y,Z,gradient(Z));axistight;colormaphot4-3曲面顏色的控制范例4-19:plotxyz15.m4-3曲面顏色的控制surf和mesh的顏色設(shè)定:例如:以曲面的曲率來設(shè)定顏色

范例4-20:plotxyz16.m[X,Y,Z]=peaks;surf(X,Y,Z,del2(Z));axistight;colormaphot4-3曲面顏色的控制范例4-20:plotxyz16.m4-3曲面顏色的控制briten:我們可用brighten指令來使顏色對照表變亮或變暗范例4-21:plotxyz17.mcolormapcoppersubplot(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曲面顏色的控制范例4-21:plotxyz17.m4-3曲面顏色的控制TrueColor:前例MATLAB決定顏色的方法稱為「索引顏色」(IndexedColor)法,因?yàn)榍嫔厦總€(gè)方塊先對應(yīng)至顏色對應(yīng)表的索引如果您的顯示器能支

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論