《维立体绘》PPT课件.ppt_第1页
《维立体绘》PPT课件.ppt_第2页
《维立体绘》PPT课件.ppt_第3页
《维立体绘》PPT课件.ppt_第4页
《维立体绘》PPT课件.ppt_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MATLAB程序设计三维立体绘图,10-1基本立体绘图指令,mesh和surf:mesh:可画出立体的网状图(MeshPlots)surf:可画出立体的曲面图(SurfacePlots),z=021;324;444;768;mesh(z);xlabel(X轴=columnindex);%X轴的说明文字ylabel(Y轴=rowindex);%Y轴的说明文字,10-1基本立体绘图指令,10-1基本立体绘图指令,若要将与曲面对应的x坐标和y坐标都一并画出来,还是可以使用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);%标示曲面高度set(h,hori,center,vertical,bottom,color,r);%改变位置及颜色endend,10-1基本立体绘图指令,10-1基本立体绘图指令,meshgrid的作用是产生x及y(均为向量)为基准的格子点(GridPoints),其输出为xx及yy(均为矩阵),分别代表格子点的x坐标及y坐标。,10-1基本立体绘图指令,x=3:6;y=5:9;xx,yy=meshgrid(x,y);%xx和yy都是矩阵zz=xx.*yy;%计算函数值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作图);axistight,10-1基本立体绘图指令,使用linspace来产生较密集的数据,以便画出由函数形成的立体网状图,x=linspace(-2,2,25);%在x轴-2,2之间取25点y=linspace(-2,2,25);%在y轴-2,2之间取25点xx,yy=meshgrid(x,y);%xx和yy都是2525的矩阵zz=xx.*exp(-xx.2-yy.2);%计算函数值,zz也是2525的矩阵mesh(xx,yy,zz);%画出立体网状图,10-1基本立体绘图指令,10-1基本立体绘图指令,surf和mesh指令的用法类似,x=linspace(-2,2,25);%在x轴-2,2之间取25点y=linspace(-2,2,25);%在y轴-2,2之间取25点xx,yy=meshgrid(x,y);%xx和yy都是2525的矩阵zz=xx.*exp(-xx.2-yy.2);%zz也是252的矩阵surf(xx,yy,zz);%画出三维曲面图,10-1基本立体绘图指令,10-1基本立体绘图指令,10-1基本立体绘图指令,peaks:为了方便测试立体绘图,MATLAB提供了一个peaks函数,可产生一个凹凸有致的曲面,包含了三个局部极大点(LocalMaxima)及三个局部极小点(LocalMinima)其方程式为:,10-1基本立体绘图指令,画出此函数的最快方法,即是在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),10-1基本立体绘图指令,peaks的图形,10-1基本立体绘图指令,meshz:meshz指令有将曲面加上围裙或舞台的效果,x,y,z=peaks;meshz(x,y,z);axistight;,10-1基本立体绘图指令,10-1基本立体绘图指令,waterfall:waterfall指令可在x方向或y方向产生水流效果,x,y,z=peaks;waterfall(x,y,z);axistight;,10-1基本立体绘图指令,10-1基本立体绘图指令,meshc:meshc可同时画出网状图与等高线(Contours),x,y,z=peaks;meshc(x,y,z);axistight;,10-1基本立体绘图指令,10-1基本立体绘图指令,plot3:plot3指令可画出三度空间中的曲线,t=linspace(0,20*pi,501);%在0及20*pi中间取501点plot3(t.*sin(t),t.*cos(t),t);%画出tsin(t),tcos(t),t的曲线,10-1基本立体绘图指令,10-1基本立体绘图指令,plot3:亦可同时画出两条三度空间中的曲线,t=linspace(0,10*pi,501);plot3(t.*sin(t),t.*cos(t),t,t.*sin(t),t.*cos(t),-t);%同时画两条曲线,10-1基本立体绘图指令,10-1基本立体绘图指令,plot3:如果输入自变量是三个大小相同的矩阵x、y、z,那么plot3会依序画出每个行向量在三度空间所对应的曲线,x,y=meshgrid(-2:0.1:2);z=y.*exp(-x.2-y.2);plot3(x,y,z);,10-1基本立体绘图指令,10-1基本立体绘图指令,plot3:上例中,所有的数据点都必需是在格子点上,MATLAB才能根据每点的高度来作图。如果所给的数据点不在格子点上,我们必需先用griddata指令来进行内插法以产生格子点,10-1基本立体绘图指令,x=6*rand(100,1)-3;%x为介于-3,3的100点随机数y=6*rand(100,1)-3;%y为介于-3,3的100点随机数z=peaks(x,y);%z为peaks指令产生的100点输出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个取样holdoffaxistight,10-1基本立体绘图指令,10-1基本立体绘图指令,整理:基本三维立体绘图指令的列表,10-1基本立体绘图指令,整理:基本三维立体绘图指令的列表,10-1基本立体绘图指令,ezmesh,ezsurf:如果我们只是要很快地检视一个具有二个输入的函数的图形,就可以使用ezmesh或是ezsurf等来快速地画出函数的曲面图形,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);,10-1基本立体绘图指令,10-2立体图形与图轴的基本技巧,hiddenoff:在绘制网状图时,MATLAB会隐藏被遮盖的网线,若要使被遮盖的网线亦能呈现出来,可用hiddenoff指令若再键入hiddenon,则恢复原先的设定,x,y,z=peaks;mesh(x,y,z);hiddenoffaxistight,10-2立体图形与图轴的基本技巧,10-2立体图形与图轴的基本技巧,整理:以on/off来切换的指令:,10-2立体图形与图轴的基本技巧,rotate3don:若要能够旋转立体图形,可已在产生3D图形之后(例如输入peaks之后),再输入rotate3don,此时您可以压下鼠标左键来拖曳图轴,以选取最理想的观测角度。也可以点选图形窗口上面的图标,就可以开始旋转立体图形。,10-2立体图形与图轴的基本技巧,三维曲线的观测角度:一般而言,三维曲线的观测角度是由Azimuth及Elevation来决定,10-2立体图形与图轴的基本技巧,对二维图形而言,默认值为Azimuth=0,Elevation=90;对三维图形而言,默认值为Azimuth=-37.5,Elevation=30。若要改变观测角度,可用view指令,peaks;view(0,-30);,10-2立体图形与图轴的基本技巧,10-2立体图形与图轴的基本技巧,NaN:有时候我们希望将曲面图切掉一部份,以呈现不同的效果,此时可用NaN或nan(NotaNumber,即“非数值”)来取代矩阵某一部份的值,MATLAB一碰到NaN,就会“镂空”,X,Y,Z=peaks;Z(10:20,10:20)=nan;%将Z矩阵的一部分代换为nansurf(X,Y,Z);axistight,10-2立体图形与图轴的基本技巧,10-3曲面颜色的控制,colorbar:利用colorbar指令,可显示MATLAB如何以不同颜色来代表曲面的高度例如先输入peaks,再输入colorbar,10-3曲面颜色的控制,整理:常用颜色的RGB成分:,10-3曲面颜色的控制,colormap:MATLAB预设的颜色对应表可由colormap得知cm是一个643的矩阵,因此MATLAB在画图时,会把cm第一列的颜色设定给曲面的最高点,把cm的最后一列的颜色设定给曲面的最低点,其余高度的颜色则依线性内插法来决定,cm=colormap;size(cm)ans=643,10-3曲面颜色的控制,colormap:改变颜色对应表,可得到不同颜色的曲面,欲改变颜色对应表,也是用colormap指令,peaks;colormap(rand(64,3);%以随机数生成颜色对应表colorbar;,10-3曲面颜色的控制,10-3曲面颜色的控制,整理:MATLAB现成的颜色对照表:,10-3曲面颜色的控制,cool:使您的曲面使用感觉较冷的颜色,peaks;colormapcool;colorbar,10-3曲面颜色的控制,10-3曲面颜色的控制,surf和mesh的颜色设定:除了以高度来设定颜色之外,surf及mesh指令都可以接受第4个输入自变量来作为设定颜色的依据例如:以曲面的斜率来设定颜色,X,Y,Z=peaks;surf(X,Y,Z,gradient(Z);axistight;colormaphot,10-3曲面颜色的控制,10-3曲面颜色的控制,surf和mesh的颜色设定:例如:以曲面的曲率来设定颜色,X,Y,Z=peaks;surf(X,Y,Z,del2(Z);axistight;colormaphot,10-3曲面颜色的控制,10-3曲面颜色的控制,brighten:我们可用brighten指令来使颜色对照表变亮或变暗,colormapcoppersubplot(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);,10-3曲面颜色的控制,10-3曲面颜色的控制,TrueColor:前例MATLAB决定颜色的方法称为索引颜色(IndexedColor)法,因为曲面上每个方块先对应至颜色对应表的索引如果您的显示器能支持24位全彩,则我们可以直接定义一千六百万(224)种颜色,而不需要再定义颜色对应表。此种方法称为真实颜色(TrueColor)法,10-3曲面颜色的控制,Z=peaks(50);C(:,:,1)=rand(50);%C(:,:,1)代表R(Red,红色)的份量C(:,:,2)=rand(50);%C(:,:,2)代表G(Green,绿色)的份量C(:,:,3)=rand(50);%C(:,:,3)代表B(Blue,蓝色)的份量subplot(1,1,1);surf(Z,C);axistight,10-3曲面颜色的控制

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论