三維函數(shù)圖像練習_第1頁
三維函數(shù)圖像練習_第2頁
三維函數(shù)圖像練習_第3頁
三維函數(shù)圖像練習_第4頁
三維函數(shù)圖像練習_第5頁
全文預覽已結束

下載本文檔

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

文檔簡介

PAGEPAGE4三維曲線

plot3函數(shù)與plot函數(shù)用法十分相似,其調用格式為:

plot3(x1,y1,z1,選項1,x2,y2,z2,選項2,…,xn,yn,zn,選項n)

其中每一組x,y,z組成一組曲線的坐標參數(shù),選項的定義和plot函數(shù)相同。當x,y,z是同維向量時,則x,y,z對應元素構成一條三維曲線。當x,y,z是同維矩陣時,則以x,y,z對應列元素繪制三維曲線,曲線條數(shù)等于矩陣列數(shù)。

繪制三維曲線。

程序如下:

t=0:pi/100:20*pi;

x=sin(t);

y=cos(t);

z=t.*sin(t).*cos(t);

plot3(x,y,z);

title('Linein3-DSpace');

xlabel('X');ylabel('Y');zlabel('Z');

三維曲面

1.產生三維數(shù)據(jù)

在MATLAB中,利用meshgrid函數(shù)產生平面區(qū)域內的網格坐標矩陣。其格式為:

x=a:d1:b;y=c:d2:d;

[X,Y]=meshgrid(x,y);

語句執(zhí)行后,矩陣X的每一行都是向量x,行數(shù)等于向量y的元素的個數(shù),矩陣Y的每一列都是向量y,列數(shù)等于向量x的元素的個數(shù)。2.繪制三維曲面的函數(shù)

surf函數(shù)和mesh函數(shù)的調用格式為:

mesh(x,y,z,c):畫網格曲面,將數(shù)據(jù)點在空間中描出,并連成網格。

surf(x,y,z,c):畫完整曲面,將數(shù)據(jù)點所表示曲面畫出。

一般情況下,x,y,z是維數(shù)相同的矩陣。x,y是網格坐標矩陣,z是網格點上的高度矩陣,c用于指定在不同高度下的顏色范圍。

繪制三維曲面圖z=sin(x+sin(y))-x/10。

程序如下:

[x,y]=meshgrid(0:0.25:4*pi);%在[0,4pi]×[0,4pi]區(qū)域生成網格坐標

z=sin(x+sin(y))-x/10;

mesh(x,y,z);

axis([04*pi04*pi-2.51]);

此外,還有帶等高線的三維網格曲面函數(shù)meshc和帶底座的三維網格曲面函數(shù)meshz。其用法與mesh類似,不同的是meshc還在xy平面上繪制曲面在z軸方向的等高線,meshz還在xy平面上繪制曲面的底座。

在xy平面內選擇區(qū)域[-8,8]×[-8,8],繪制4種三維曲面圖。

程序如下:

[x,y]=meshgrid(-8:0.5:8);

z=sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2+eps);

subplot(2,2,1);

mesh(x,y,z);

title('mesh(x,y,z)')

subplot(2,2,2);

meshc(x,y,z);

title('meshc(x,y,z)')

subplot(2,2,3);

meshz(x,y,z)

title('meshz(x,y,z)')

subplot(2,2,4);

surf(x,y,z);

title('surf(x,y,z)')

3.標準三維曲面

sphere函數(shù)的調用格式為:

[x,y,z]=sphere(n):generatesthree(N+1)-by-(N+1)

matricessothatSURF(X,Y,Z)producesaunitsphere.

cylinder函數(shù)的調用格式為:

[x,y,z]=cylinder(R,n),其中r為圓周半徑,n為組成圓周的點數(shù)。

MATLAB還有一個peaks函數(shù),稱為多峰函數(shù),常用于三維曲面的演示。

繪制標準三維曲面圖形。

程序如下:

t=0:pi/20:2*pi;

[x,y,z]=cylinder(2+sin(t),30);

subplot(2,2,1);

surf(x,y,z);

subplot(2,2,2);

[x,y,z]=sphere;

surf(x,y,z);

subplot(2,1,2);

[x,y,z]=peaks(30);

surf(x,y,z);

其他三維圖形在介紹二維圖形時,曾提到條形圖、桿圖、餅圖和填充圖等特殊圖形,它們還可以以三維形式出現(xiàn),使用的函數(shù)分別是bar3、stem3、pie3和fill3。

bar3函數(shù)繪制三維條形圖,常用格式為:

bar3(y)

bar3(x,y)

stem3函數(shù)繪制離散序列數(shù)據(jù)的三維桿圖,常用格式為:

stem3(z)

stem3(x,y,z)

pie3函數(shù)繪制三維餅圖,常用格式為:

pie3(x)

fill3函數(shù)等效于三維函數(shù)fill,可在三維空間內繪制出填充過的多邊形,常用格式為:

fill3(x,y,z,c)

繪制三維圖形:

(1)繪制魔方陣的三維條形圖。

light('Posi',[1,0,1]);

shadinginterp;

holdon;

plot3(1,0,1,'p');text(1,0,1,'light');

圖形的裁剪處理

例4-22

繪制三維曲面圖,并進行插值著色處理,裁掉圖中x和y都小于0部分。

程序如下:

[x,y]=meshgrid(-5:0.1:5);

z=cos(x).*cos(y).*exp(-sqrt(x.^2+y.^2)/4);

surf(x,y,z);shadinginterp;

pause

%程序暫停

i=find(x<=0&y<=0);

z1=z;z1(i)=NaN;

surf(x,y,z1);shadinginterp;

為了展示裁剪效果,第一個曲面繪制完成后暫停,然后顯示裁剪后的曲面。

動畫制作

MATLAB提供getframe、moviein和movie函數(shù)進行動畫制作。

1.getframe函數(shù)

getframe函數(shù)可截取一幅畫面信息(稱為動畫中的一幀),一幅畫面信息形成一個很大的列向量。顯然,保存n幅圖面就需一個大矩陣。2.moviein函數(shù)

moviein(n)函數(shù)用來建立一個足夠大的n列矩陣。該矩陣用來保存n幅畫面的數(shù)據(jù),以備播放。之所以要事先建立一個大矩陣,是為了提高程序運行速度。

3.movie函數(shù)

movie(m,n)函數(shù)播放由矩陣m所定義的畫面n次,缺省時播放一次。

例繪制了peaks函數(shù)曲面并且將它繞z軸旋轉。

程序如下

[X,Y,Z]=peaks(30);

surf(X,Y,Z)

axis([-3,3,-3,3,-10,10])

axisoff;

shadinginterp;

colormap(hot);

m=moviein(20);

溫馨提示

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

評論

0/150

提交評論