MATLAB作圖及其數(shù)學(xué)模型的求解.ppt
《MATLAB作圖及其數(shù)學(xué)模型的求解.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《MATLAB作圖及其數(shù)學(xué)模型的求解.ppt(83頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
后勤工程學(xué)院數(shù)學(xué)教研室,數(shù)學(xué)建模與數(shù)學(xué)實(shí)驗(yàn),后勤工程學(xué)院數(shù)學(xué)教研室,MATLAB作圖,Matlab作圖,二維圖形,三維圖形,圖形處理,實(shí)例,作業(yè),特殊二、三維圖形,,Matlab作圖是通過(guò)描點(diǎn)、連線來(lái)實(shí)現(xiàn)的,故在畫一個(gè)曲線圖形之前,必須先取得該圖形上的一系列的點(diǎn)的坐標(biāo)(即橫坐標(biāo)和縱坐標(biāo)),然后將該點(diǎn)集的坐標(biāo)傳給Matlab函數(shù)畫圖.,命令為: PLOT(X,Y,S),PLOT(X,Y)--畫實(shí)線 PLOT(X,Y1,S1,X,Y2,S2,……,X,Yn,Sn) --將多條線畫在一起,X,Y是向量,分別表示點(diǎn)集的橫坐標(biāo)和縱坐標(biāo),,,,,線型,1.曲線圖,表1 基本線型和顏色,,,例 在[0,2*pi]用紅線畫sin(x),用綠圈畫cos(x).,x=linspace(0,2*pi,30); y=sin(x); z=cos(x); plot(x,y,r,x,z,’g0),解,Matlab liti1,2.符號(hào)函數(shù)(顯函數(shù)、隱函數(shù)和參數(shù)方程)畫圖,(1) ezplot,ezplot(‘x(t)’,’y(t)’,[tmin,tmax]) 表示在區(qū)間tminttmax繪制參數(shù)方程 x=x(t),y=y(t)的函數(shù)圖,ezplot(‘f(x)’,[a,b]) 表示在axb繪制顯函數(shù)f=f(x)的函數(shù)圖,ezplot(‘f(x,y)’,[xmin,xmax,ymin,ymax]) 表示在區(qū)間xminxxmax和 yminyymax繪制 隱函數(shù)f(x,y)=0的函數(shù)圖,例 在[0,pi]上畫y=cos(x)的圖形,解 輸入命令 ezplot(‘sin(x)’,[0,pi]),Matlab liti25,解 輸入命令 ezplot(‘cos(t)^3’,’sin(t)^3’,[0.2*pi]),Matlab liti41,解 輸入命令 ezplot(exp(x)+sin(x*y),[-2,0.5,0,2]),Matlab liti40,,(2) fplot,注意: [1] fun必須是M文件的函數(shù)名或是獨(dú)立變量為x的字符串. [2] fplot函數(shù)不能畫參數(shù)方程和隱函數(shù)圖形,但在一個(gè)圖上可以畫多個(gè)圖形。,fplot(‘fun’,lims) 表示繪制字符串fun指定的函數(shù)在lims=[xmin,xmax]的圖形.,解 先建M文件myfun1.m: function Y=myfun1(x) Y=exp(2*x)+sin(3*x.^2),再輸入命令: fplot(‘myfun1’,[-1,2]),Matlab liti43,Matlab liti28,解 輸入命令: fplot(‘[tanh(x),sin(x),cos(x)]’,2*pi*[-1 1 –1 1]),例 在[-2,2]范圍內(nèi)繪制函數(shù)tanh的圖形 解 fplot(‘tanh’,[-2,2]),Matlab liti42,3. 對(duì)數(shù)坐標(biāo)圖,在很多工程問(wèn)題中,通過(guò)對(duì)數(shù)據(jù)進(jìn)行對(duì)數(shù)轉(zhuǎn)換可以更清晰地看出數(shù)據(jù)的某些特征,在對(duì)數(shù)坐標(biāo)系中描繪數(shù)據(jù)點(diǎn)的曲線,可以直接地表現(xiàn)對(duì)數(shù)轉(zhuǎn)換.對(duì)數(shù)轉(zhuǎn)換有雙對(duì)數(shù)坐標(biāo)轉(zhuǎn)換和單軸對(duì)數(shù)坐標(biāo)轉(zhuǎn)換兩種.用loglog函數(shù)可以實(shí)現(xiàn)雙對(duì)數(shù)坐標(biāo)轉(zhuǎn)換,用semilogx和semilogy函數(shù)可以實(shí)現(xiàn)單軸對(duì)數(shù)坐標(biāo)轉(zhuǎn)換.,loglog(Y) 表示 x、y坐標(biāo)都是對(duì)數(shù)坐標(biāo)系 semilogx(Y) 表示 x坐標(biāo)軸是對(duì)數(shù)坐標(biāo)系 semilogy(…) 表示y坐標(biāo)軸是對(duì)數(shù)坐標(biāo)系 plotyy 有兩個(gè)y坐標(biāo)軸,一個(gè)在左邊,一個(gè)在右邊,例 用方形標(biāo)記創(chuàng)建一個(gè)簡(jiǎn)單的loglog,解 輸入命令: x=logspace(-1,2); loglog(x,exp(x),’-s’) grid on %標(biāo)注格柵,Matlab liti37,例 創(chuàng)建一個(gè)簡(jiǎn)單的半對(duì)數(shù)坐標(biāo)圖 解 輸入命令: x=0:.1:10; semilogy(x,10.^x),Matlab liti38,例 繪制y=x3的函數(shù)圖、對(duì)數(shù)坐標(biāo)圖、半對(duì)數(shù)坐標(biāo)圖,Matlab liti22,返回,三維圖形,1、空間曲線,2、空間曲面,返回,PLOT3(x,y,z,s),空 間 曲 線,1、 一條曲線,例 在區(qū)間[0,10*pi]畫出參數(shù)曲線x=sin(t),y=cos(t), z=t.,Matlab liti8,解 t=0:pi/50:10*pi; plot3(sin(t),cos(t),t) rotate3d %旋轉(zhuǎ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,rp); title(Line in 3-D space); text(0,0,0,origin); xlabel(x);ylabel(y);zlabel(z);grid,程序:,曲線對(duì)應(yīng)的參數(shù)方程為:,PLOT3(x,y,z),2、多條曲線,例 畫多條曲線觀察函數(shù)Z=(X+Y).^2.,(這里meshgrid(x,y)的作用是產(chǎn)生一個(gè)以向量x為行、向量y為列的矩陣),Matlab liti9,其中x,y,z是都是m*n矩陣,其對(duì)應(yīng)的每一列表示一條曲線.,解 x=-3:0.1:3;y=1:0.1:5; [X,Y]=meshgrid(x,y); Z=(X+Y).^2; plot3(X,Y,Z),返回,x=a:dx:b; y=(c:dy:d); [X,Y]=meshgrid(x,y),執(zhí)行上述語(yǔ)句后,所得到的網(wǎng)絡(luò)坐標(biāo)X,Y與①得到的相同,當(dāng)X=Y時(shí),meshgrid函數(shù)可寫成meshgrid(x),三維曲面,(1)平面網(wǎng)格坐標(biāo)矩陣的生成,繪制三維曲面的函數(shù),格式:mesh(x,y,z,c) surf(x,y,z,c),一般情況:x,y,z是維數(shù)相同的矩陣,x,y是網(wǎng)絡(luò)坐標(biāo)矩陣,z是網(wǎng)點(diǎn)上的高度矩陣,c是指在不同高度下的顏色范圍。C省略時(shí),Matlab認(rèn)為c=z,即顏色的設(shè)定正比于圖形的高度,這樣可以得到層次分明的三維圖。當(dāng)x與y是向量時(shí),x的長(zhǎng)度與z矩陣的列相等,y的長(zhǎng)度與z矩陣的行相等,x、y向量元素的組合構(gòu)成網(wǎng)格點(diǎn)的x、y坐標(biāo),z坐標(biāo)則取自z矩陣。,例:用三維曲面表現(xiàn)函數(shù),x=0:0.1:2*pi; [X,Y]=meshgrid(x); z=sin(Y).*cos(X); mesh(X,Y,z); %用mesh函數(shù)繪制三維曲面圖 xlabel(x-axis),ylabel(y-axis),zlabel(z-axis), title(mesh),程序1,輸出結(jié)果,程序2,x=0:0.1:2*pi; [X,Y]=meshgrid(x); z=sin(Y).*cos(X); surf(X,Y,z);%用surf函數(shù)繪制三維曲面圖 xlabel(x-axis),ylabel(y-axis),zlabel(z-axis), title(surf),輸出結(jié)果,程序3,x=0:0.1:2*pi; [X,Y]=meshgrid(x); z=sin(Y).*cos(X); plot3(X,Y,z); %用plot函數(shù)繪制三維曲面圖 xlabel(x-axis),ylabel(y-axis),zlabel(z-axis), title(plot3-1),grid,輸出結(jié)果,此外,還有兩個(gè)和mesh函數(shù)相似的函數(shù),即帶等高線的三維網(wǎng)格曲面函數(shù)meshc盒帶底座的三維網(wǎng)格曲面函數(shù)meshz,其用法與mesh類似,不同的是meshc還在xy平面上繪制曲面再z軸方向的等高線,meshz還在xy平面上繪制曲面的底座。 函數(shù)surf也有兩個(gè)類似的函數(shù),即具有等高線的曲面函數(shù)surfc和具有光照效果的曲面函數(shù)surfl,例:在xy平面內(nèi)選擇區(qū)域[-8,8] [-8,8],繪制函數(shù),的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);meshc(x,y,z);title(meshc(x,y,z)); subplot(2,2,2);meshz(x,y,z);title(meshz(x,y,z)); subplot(2,2,3);surfc(x,y,z);title(surfc(x,y,z)); subplot(2,2,4);surfl(x,y,z);title(surfl(x,y,z));,程序如下:,輸出結(jié)果:,(3)標(biāo)準(zhǔn)三維曲面,Matlab提供了sphere和cylinder函數(shù),分別繪制三維球面和柱面。,格式:[x,y,z]=sphere(n) %球面函數(shù),該函數(shù)將產(chǎn)生(n+1) (n+1)矩陣x,y,z,采用這三個(gè)矩陣可以繪制圓心在原點(diǎn)、半徑為1的單位球體。若調(diào)用該函數(shù)時(shí)不輸出函數(shù),則直接繪制球面。n決定球面的圓化程度,默認(rèn)值為20,n越小,則繪制出多面體表面圖。,格式:[x,y,z]=cylinder(R,n) %柱面,R是一個(gè)向量,存放柱面各個(gè)等間隔高度上的半徑,n表示在圓柱圓周上有n個(gè)間隔點(diǎn)默認(rèn)值為20。,例:cylinder(3) %生成圓柱,例: cylinder([10,1]) %生成一圓錐,例:下面的程序生成正弦型柱面,t=0:pi/100:4*pi; R=sin(t); cylinder(R,30),Matlab的多峰函數(shù):peaks,例:peaks(30) %產(chǎn)生一個(gè)多峰圖,f(x,y) = 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),例如:,[x,y]=meshgrid(-5:0.1:5); peaks(x,y),例:繪制標(biāo)準(zhǔn)三維曲面圖形,t=0:pi/20:2*pi; [x,y,z]=cylinder(2+sin(t),30); subplot(1,3,1);surf(x,y,z); subplot(1,3,2);[x,y,z]=sphere; surf(x,y,z); %繪制球面 subplot(1,3,3);[x,y,z]=peaks(30); meshz(x,y,z) ;%繪制多峰,在圖形上加格柵、圖例和標(biāo)注,定制坐標(biāo),圖形保持,分割窗口,,,,,縮放圖形,,,改變視角,圖形處理,,,返回,動(dòng) 畫,,1、在圖形上加格柵、圖例和標(biāo)注,(1)GRID ON: 加格柵在當(dāng)前圖上 GRID OFF: 刪除格柵,處理圖形,(2)hh = xlabel(string): 在當(dāng)前圖形的x軸上加圖例string,hh = ylabel(string): 在當(dāng)前圖形的y軸上加圖例string,hh = title(string): 在當(dāng)前圖形的頂端上加圖例string,hh = zlabel(string): 在當(dāng)前圖形的z軸上加圖例string,例 在區(qū)間[0,2*pi]畫sin(x)的圖形,并加注圖例“自變量 X”、“函數(shù)Y”、“示意圖”, 并加格柵.,解 x=linspace(0,2*pi,30); y=sin(x); plot(x,y) xlabel(自變量X) ylabel(函數(shù)Y) title(示意圖) grid on,Matlab liti2,(3) hh = gtext(‘string’),命令gtext(‘string’)用鼠標(biāo)放置標(biāo)注在現(xiàn)有的圖上. 運(yùn)行命令gtext(‘string’)時(shí),屏幕上出現(xiàn)當(dāng)前圖形,在 圖形上出現(xiàn)一個(gè)交叉的十字,該十字隨鼠標(biāo)的移動(dòng)移動(dòng), 當(dāng)按下鼠標(biāo)左鍵時(shí),該標(biāo)注string放在當(dāng)前十交叉的位 置.,例 在區(qū)間[0,2*pi]畫sin(x),并分別標(biāo)注“sin(x)” ”cos(x)”.,解 x=linspace(0,2*pi,30); y=sin(x); z=cos(x); plot(x,y,x,z) gtext(‘sin(x)’);gtext(’cos(x)’),Matlab liti3,返回,2、定制坐標(biāo),Axis([xmin xmax ymin ymax zmin zmax]),例 在區(qū)間[0.005,0.01]顯示sin(1/x)的圖形。,解 x=linspace(0.0001,0.01,1000); y=sin(1./x); plot(x,y) axis([0.005 0.01 –1 1]),Matlab liti4,返回,定制圖形坐標(biāo),將坐標(biāo)軸返回到自動(dòng)缺省值,Axis auto,表3 axis命令,,,3、圖形保持,(1) hold on hold of,例 將y=sin(x)、y=cos(x)分別用點(diǎn)和線畫出在同一屏幕上。,解 x=linspace(0,2*pi,30); y=sin(x); z=cos(x) plot(x,z,:) hold on Plot(x,y),Matlab liti5,保持當(dāng)前圖形, 以便繼續(xù)畫圖到當(dāng)前圖上,釋放當(dāng)前圖形窗口,(2) figure(h),例 區(qū)間[0,2*pi]新建兩個(gè)窗口分別畫出y=sin(x); z=cos(x)。,解 x=linspace(0,2*pi,100); y=sin(x);z=cos(x); plot(x,y); title(sin(x)); pause figure(2); plot(x,z); title(cos(x));,Matlab liti6,返回,新建h窗口,激活圖形使其可見,并把它置于其它圖形之上,4、分割窗口,h=subplot(mrows,ncols,thisplot),劃分整個(gè)作圖區(qū)域?yàn)閙rows*ncols塊(逐行對(duì)塊訪問(wèn))并激活第thisplot塊,其后的作圖語(yǔ)句將圖形畫在該塊上。,激活已劃分為mrows*ncols塊的屏幕中的第thisplot塊,其后的作圖語(yǔ)句將圖形畫在該塊上。,命令Subplot(1,1,1)返回非分割狀態(tài)。,subplot(mrows,ncols,thisplot),subplot(1,1,1),解x=linspace(0,2*pi,100); y=sin(x); z=cos(x); a=sin(x).*cos(x);b=sin(x)./(cos(x)+eps) subplot(2,2,1);plot(x,y),title(‘sin(x)’) subplot(2,2,2);plot(x,z),title(‘cos(x)’) subplot(2,2,3);plot(x,a),title(‘sin(x)cos(x)’) subplot(2,2,4);plot(x,b),title(‘sin(x)/cos(x)’),例 將屏幕分割為四塊,并分別畫出y=sin(x),z=cos(x),a=sin(x)*cos(x),b=sin(x)/cos(x)。,Matlab liti7,返回,5、縮放圖形,zoom on,單擊鼠標(biāo)左鍵,則在當(dāng)前圖形窗口中,以鼠標(biāo)點(diǎn)中的點(diǎn)為中心的圖形放大2倍;單擊鼠標(biāo)右鍵,則縮小2倍,解 x=linspace(0,2*pi,30); y=sin(x); Plot(x,y) zoom on,例 縮放y=sin(x)的圖形,zoom off,為當(dāng)前圖形打開縮放模式,關(guān)閉縮放模式,返回,表2 二維繪圖工具,,,2.其他各種二維繪圖函數(shù),6. 改變視角view,(1)view(a,b) 命令view(a,b)改變視角到(a,b),a是方位角,b為仰角。缺省視角為(-37.5,30)。,解 x=-3:0.1:3; y=1:0.1:5; [X,Y]=meshgrid(x,y); Z=(X+Y).^2; subplot(2,2,1), mesh(X,Y,Z) subplot(2,2,2), mesh(X,Y,Z),view(50,-34) subplot(2,2,3), mesh(X,Y,Z),view(-60,70) subplot(2,2,4), mesh(X,Y,Z),view(0,1,1),Matlab liti10,例 畫出曲面Z=(X+Y).^2在不同視角的網(wǎng)格圖.,view用空間矢量表示的,三個(gè)量只關(guān)心它們的比例,與數(shù)值的大小無(wú)關(guān),x軸view([1,0,0]),y軸view([0,1,0]),z軸view([0,0,1])。,(2)view([x,y,z]),返回,7. 動(dòng)畫,Moviein(),getframe,movie() 函數(shù)Moviein()產(chǎn)生一個(gè)幀矩陣來(lái)存放動(dòng)畫中的幀;函數(shù)getframe對(duì)當(dāng)前的圖象進(jìn)行快照;函數(shù)movie()按順序回放各幀。,Matlab liti14,返回,例 將曲面peaks做成動(dòng)畫。,解 [x,y,z]=peaks(30); surf(x,y,z) axis([-3 3 -3 3 -10 10]) m=moviein(15); for i=1:15 view(-37.5+24*(i-1),30) m(:,i)=getframe; end movie(m),4.4.3、其他三維圖形,在介紹二維圖形時(shí),曾經(jīng)提到過(guò)條形圖、桿圖、餅圖和填充圖形,他們都可以出現(xiàn)在三維圖中,使用的函數(shù)分別為bar3、stem3、pie3和fill3,bar3的調(diào)用格式 bar(y) bar(x,y),在第一種格式中,y的每個(gè)元素對(duì)應(yīng)一個(gè)條形,第二種格式在x制定的位置上繪制y中元素的條形圖,格式: stem3(z) stem(x,y,z),格式: pie3(x),格式: fill(x,y,z,c),第一種格式將數(shù)據(jù)序列z表示從xy平面向上延伸的桿圖,x和y自動(dòng)生成。 第二種格式在x,y指定的位置上繪制數(shù)據(jù)序列z的桿圖,x、y、z的維數(shù)必須相同,X為向量,式中x、y、z作為三角形的頂點(diǎn),c為指定的填充顏色,subplot(2,2,1);bar3(magic(4)) subplot(2,2,2); y=2*sin(0:pi/10:2*pi); stem3(y); subplot(2,2,3);pie3([2347,1827,2043,3025]); subplot(2,2,4);fill3(rand(3,5),rand(3,5),rand(3,5),y),程序如下,瀑布圖的繪制,Matlab提供的調(diào)用函數(shù)waterfall,其用法及效果與函數(shù)meshz函數(shù)相似,只是在x軸方向出現(xiàn)瀑布效果。 等高線圖分二維和三維兩種,分別用函數(shù)contour和contour3繪圖。,例:繪制多峰函數(shù)的瀑布圖和等高線圖,subplot(1,2,1); [X,Y,Z]=peaks(80); waterfall(X,Y,Z); xlabel(X-axis),ylabel(Y-axis),zlabel(Z-axis); subplot(1,2,2); contour3(X,Y,Z,12,k); xlabel(X-axis),ylabel(Y-axis),zlabel(Z-axis);,程序如下,觀看執(zhí)行后的效果,clf x=-4:4;y=x; %確定自變量的取值范圍 [X,Y]=meshgrid(x,y); %生成x-y平面的點(diǎn)格矩陣 Z=X.^2+Y.^2; %計(jì)算點(diǎn)格上的函數(shù)值 surf(X,Y,Z); %繪制曲面圖 colormap(hot) %采用hot色圖 hold on stem3(X,Y,Z,bo) %繪制桿圖 hold off xlabel(x),ylabel(y),zlabel(z) axis([-5,5,-5,5,0,inf]) %設(shè)置坐標(biāo)范圍 view([-84,21]) %控制視角,例:繪制曲面圖表現(xiàn)函數(shù)z=x2+y2。,程序如下,觀看執(zhí)行后的效果,1、視角控制view,4.5 三維圖形的精細(xì)處理,在日常生活中,從不同的角度觀察物體所得到的形狀是不同的。Matlab提供函數(shù)view改變?cè)圏c(diǎn)獲得較好的視角效果,視角控制有兩方法,view([az,el]) 通過(guò)方位角、俯視角設(shè)置視點(diǎn),az---方位角Azimyth), 默認(rèn)值-370 el---俯視角(Elevation), 默認(rèn)值300 當(dāng)az=00,el=900,圖形將以平面直角表現(xiàn),,view([vx,vy,vz]) 通過(guò)直角坐標(biāo)設(shè)置視點(diǎn),式中:vx,vy,vz為視點(diǎn)的直角坐標(biāo),Matlab圖形窗可交互式調(diào)節(jié)視點(diǎn),為獲得最佳的視覺效果,用戶可先用鼠標(biāo)操作調(diào)節(jié)視點(diǎn),然后用[az0,el0]=view獲得視覺效果的方位角和俯視角,再把這對(duì)參數(shù)通過(guò)view([az0,el0])用于繪圖指令中。,2、色圖colormap,格式:colormap(CM) 設(shè)置當(dāng)前圖形窗的著色色圖為CM,說(shuō)明: Matlab每個(gè)圖形窗只能有一個(gè)色圖colormap 色圖為(m3)矩陣,它的每一行是RGB三元組。色像即可通過(guò)矩陣元素的直接賦值定義,也可按某種數(shù)學(xué)規(guī)律生成。 Matlab提供了一組對(duì)不同曲面/網(wǎng)線圖、圖像進(jìn)行著色矩陣。這些與定義色圖矩陣只由[0,1]區(qū)間數(shù)據(jù)組成的(643)矩陣。如表4.4、表4.5,MATLAB的預(yù)定義色圖矩陣CM,3、濃淡處理shading,格式:shading options 圖形對(duì)象著色的濃淡處理,說(shuō)明: mesh、surf、pcolor、fill和fill3創(chuàng)建圖形非數(shù)據(jù)點(diǎn)的著色處理 指令中選項(xiàng)options可有三種方式 flat—網(wǎng)絡(luò)線某整條線段,或曲面圖的某整個(gè)貼 片都是一種顏色;顏色取自該線段兩端或 貼片四周頂點(diǎn)數(shù)據(jù)中下標(biāo)最小那點(diǎn)的顏色。,intep---網(wǎng)絡(luò)線段或曲面貼片上各點(diǎn)的顏色由 該線 段兩端,或該貼片絲頂點(diǎn)處的顏色經(jīng)線形插 值而得;這種方法的用色比較細(xì)膩,但最費(fèi) 時(shí)。 faceted—在flat用色的基礎(chǔ)上,再在貼片的四周勾畫 黑色網(wǎng)線,這種方式立體感最強(qiáng),是 shading 的默認(rèn)值 shading是設(shè)置當(dāng)前軸上“面”對(duì)象的EdgeColor和FaceColor屬性的高層指令。,clf x=-4:4;y=x; [X,Y]=meshgrid(x,y); Z=X.^2+Y.^2; surf(X,Y,Z) colormap(jet) subplot(1,3,1),surf(Z),axis off subplot(1,3,2),surf(Z),axis off,shading flat subplot(1,3,3),surf(Z),axis off,shading interp set(gcf,Color,w),例:三種濃淡處理的比較,程序如下,觀看執(zhí)行后的效果,4、透明度控制alpha,格式: alpha(v) 對(duì)面、塊、象三種圖形對(duì)象的透明 度加以控制,V可以取0到1之間的數(shù)值,0表示完全透明,1表示不透明。,例:半透明表面圖,clf surf(peaks) %繪制一個(gè)多峰曲面 shading interp %濃淡處理 alpha(0.5) %半透明處理 colormap(summer) %綠、黃濃淡色設(shè)置,程序如下,觀看執(zhí)行后效果,5、燈光設(shè)置light,格式: light(color,option1,style,option2,position,option3),說(shuō)明: 在該指令使用前,圖形采用強(qiáng)度各處相等的漫射光,一旦該指令被執(zhí)行,雖然光源本身并不出現(xiàn),但圖形上“面”等子對(duì)象所有與“光”有關(guān)的屬性(如背景光、邊緣光)都被激活。 加入該指令不包含任何輸入宗量,則采用默認(rèn)設(shè)置:白光、無(wú)窮遠(yuǎn)、穿過(guò)[1,0,1]射向坐標(biāo)原點(diǎn)。,,任何一個(gè)輸入宗量對(duì)都可以空缺,那時(shí)采用默認(rèn)值。 option1可采采用RGB三元組或相應(yīng)的色彩子符,如[1 0 0],或‘r’,都代表紅光。 option2有兩個(gè)取值:‘infinite’和‘local’。前者表示無(wú)窮光,后者為近光。 option3總為直角坐標(biāo)的三元數(shù)組形式,對(duì)遠(yuǎn)光,它表示光線穿過(guò)該點(diǎn)射向原點(diǎn);對(duì)近光它表示光源所在的地方。,6、照明模式lighting,格式:lighting options %設(shè)置照明模式,說(shuō)明: 該指令只有在light指令執(zhí)行后才起作用 options有以下四種取值: flat—入射光均勻?yàn)⒙湓趫D形對(duì)象的每個(gè)面上, 主要與facted配用,它是默認(rèn)模式 gouraud—先對(duì)頂點(diǎn)顏色插補(bǔ),在對(duì)頂點(diǎn)勾畫的色棉進(jìn)行插補(bǔ);用于曲面表現(xiàn), phohg—對(duì)頂點(diǎn)處法線插值,在計(jì)算個(gè)像素的反光;表現(xiàn)效果最好,但最費(fèi)時(shí)。 none—是所有的光源關(guān)閉,[X0,Y0,Z0]=sphere(30);%產(chǎn)生單位球面的三坐標(biāo) X=2*X0;Y=2*Y0;Z=2*Z0;%產(chǎn)生半徑為2的球面三坐標(biāo) surf(X0,Y0,Z0); %畫單位球面 shading interp %采用插補(bǔ)明暗處理 hold on, mesh(X,Y,Z), %畫半徑為2的球面 colormap(hot) %采用hot色圖 hold off hidden off %產(chǎn)生透明效果 axis equal,axis off,例:透視演示,程序如下:,觀看執(zhí)行的效果,clf,x=[-8:0.1:8];y=x; [X,Y]=meshgrid(x,y);ZZ=X.^2-Y.^2; ii=find(abs(X)6|abs(Y)6); %確定超出[-6.6]范圍的各點(diǎn)下標(biāo) ZZ(ii)=zeros(size(ii)); %強(qiáng)制為0 surf(X,Y,ZZ),shading interp;colormap(copper) light(position,[0,-15,1]);lighting phong material([0.8,0.8,0.5,10,0.5]),例:表面切面,程序如下,,觀看執(zhí)行的效果,P=peaks(30); %從Matlab提供的雙變量正態(tài)分布曲面獲取數(shù)據(jù) P(18:20,9:15)=NaN; %為鏤空賦值 surfc(P); %帶等位線的曲面圖 colormap(hot) light(position,[50,-10,5]) material([0.9,0.9,0.6,15,0.4]) grid off,box on,例:利用“非數(shù)”NaN,對(duì)圖形進(jìn)行鏤空處理,程序如下,觀看執(zhí)行的效果,clf [x,y] = meshgrid(-5:0.1:5); %產(chǎn)生二維點(diǎn)格陣 z =cos(x).* cos(y).* exp(-sqrt(x.^2+y.^2)/4); surf(x,y,z); shading interp; pause(5); i=find(x=0 ,例:圖形函數(shù),(1)繪制三維曲面圖,并進(jìn)行插值著色處理 (2)裁掉圖中x和y都小于0的部分,clf [x,y,z] = meshgrid(-2:.2:2,-2:.25:2,-2:.16:2); %產(chǎn)生三維點(diǎn)格陣 v =x.*exp(-x.^2-y.^2-z.^2); xs = [-0.7,0.7]; ys = 0; zs =0; %確定切片位置 slice(x,y,z,v,xs,ys,zs) %產(chǎn)生切片圖 colorbar shading interp colormap hsv xlabel(x),ylabel(y),zlabel(z) title(The color-to-v(x,y,z) mapping) view([-22,39]) alpha(0.3),例:圖形函數(shù),程序如下,觀看執(zhí)行的效果,特殊二、三維圖形,1、特殊的二維圖形函數(shù),2、特殊的三維圖形函數(shù),返回,特殊的二維圖形函數(shù),1、極坐標(biāo)圖:polar (theta,rho,s),用角度theta(弧度表示)和極半徑rho作極坐標(biāo)圖,用s指定線型。,例,解:theta=linspace(0,2*pi), rho=sin(2*theta).*cos(2*theta); polar(theta,rho,’g’) title(‘Polar plot of sin(2*theta).*cos(2*theta)’);,Matlab liti15,2、 散點(diǎn)圖: scatter(X,Y,S,C) 在向量X和Y的指定位置顯示彩色圈.X和Y必須大小相同.,解 輸入命令: load seamount scatter(x,y,5,z),Matlab liti29,3、平面等值線圖: contour (x,y,z,n) 繪制n個(gè)等值線的二維等值線圖,解 輸入命令: [X,Y]=meshgeid(-2:.2:2,-2:.2:3); Z=X.*exp(-X.^2-Y.^2); [C,h]=contour(X,Y,Z); clabel(C,h) colormap cool,Matlab liti34,例 繪制seamount散點(diǎn)圖,返回,特殊的三維圖形函數(shù),1、空間等值線圖: contour 3(x,y,z,n),其中n表示等值線數(shù)。,例 山峰的三維和二維等值線圖。,解 [x,y,z]=peaks; subplot(1,2,1) contour3(x,y,z,16,s) grid, xlabel(x-axis),ylabel(y-axis) zlabel(z-axis) title(contour3 of peaks); subplot(1,2,2) contour(x,y,z,16,s) grid, xlabel(x-axis), ylabel(y-axis) title(contour of peaks);,Matlab liti18,3、三維散點(diǎn)圖 scatter3(X,Y,Z,S,C) 在向量X,Y和Z指定的位置上顯示彩色圓圈. 向量X,Y和Z的大小必須相同.,解 輸入命令: [x,y,z]=sphere(16); X=[x(:)*.5 x(:)*.75 x(:)]; Y=[y(:)*.5 y(:)*.75 y(:)]; Z=[z(:)*.5 z(:)*.75 z(:)]; S=repmat([1 .75 .5]*10,prod(size(x)),1); C=repmat([1 2 3],prod(size(x)),1); scatter3(X(:),Y(:),Z(:),S(:),C(:),filled),view(-60,60),例 繪制三維散點(diǎn)圖。,Matlab liti32,返回,繪制山區(qū)地貌圖,要在某山區(qū)方圓大約27平方公里范圍內(nèi)修建一條公路,從山腳出發(fā)經(jīng)過(guò)一個(gè)居民區(qū),再到達(dá)一個(gè)礦區(qū)。橫向縱向分別每隔400米測(cè)量一次,得到一些地點(diǎn)的高程:(平面區(qū)域0=x=5600,0=y=4800),需作出該山區(qū)的地貌圖和等高線圖。,返回,解 x=0:400:5600; y=0:400:4800; z=[370 470 550 600 670 690 670 620 580 450 400 300 100 150 250;. 510 620 730 800 850 870 850 780 720 650 500 200 300 350 320;. 650 760 880 970 1020 1050 1020 830 900 700 300 500 550 480 350;. 740 880 1080 1130 1250 1280 1230 1040 900 500 700 780 750 650 550;. 830 980 1180 1320 1450 1420 1400 1300 700 900 850 840 380 780 750;. 880 1060 1230 1390 1500 1500 1400 900 1100 1060 950 870 900 930 950;. 910 1090 1270 1500 1200 1100 1350 1450 1200 1150 1010 880 1000 1050 1100;. 950 1190 1370 1500 1200 1100 1550 1600 1550 1380 1070 900 1050 1150 1200;. 1430 1430 1460 1500 1550 1600 1550 1600 1600 1600 1550 1500 1500 1550 1550;. 1420 1430 1450 1480 1500 1550 1510 1430 1300 1200 980 850 750 550 500;. 1380 1410 1430 1450 1470 1320 1280 1200 1080 940 780 620 460 370 350;. 1370 1390 1410 1430 1440 1140 1110 1050 950 820 690 540 380 300 210;. 1350 1370 1390 1400 1410 960 940 880 800 690 570 430 290 210 150]; meshz(x,y,z),rotate3d xlabel(X),ylabel(Y),zlabel(Z) pause figure(2) contour(x,y,z) pause figure(3) contour3(x,y,z),返回,返回,實(shí)驗(yàn)作業(yè),1、在同一平面中的兩個(gè)窗口分別畫出心形線和馬鞍面。,要求:,1、在圖形上加格柵、圖例和標(biāo)注,2、定制坐標(biāo),3、以不同角度觀察馬鞍面,2、以不同的視角觀察球面 和 圓柱面 所圍區(qū)域。,謝謝光臨!,- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- MATLAB 作圖 及其 數(shù)學(xué)模型 求解
鏈接地址:http://kudomayuko.com/p-2911316.html