Matlab三维立体画图.doc_第1页
Matlab三维立体画图.doc_第2页
Matlab三维立体画图.doc_第3页
Matlab三维立体画图.doc_第4页
Matlab三维立体画图.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

atlab三维画图 (2011-04-12 21:11:26)转载标签:matlab三维图分类:课程学习今天被matlab画三维图给整疯掉了,想通过三角形两边的变化求一边对角的变化函数图,但是matlab中说这是complex,无法画图,我就想限制值域,这样就是一对一的函数了,但是matlab不知道怎么实现,网上查了查也没找到。就先放一放再说吧。不过过程中发现matlab画出的图还是很强大且漂亮的。附上两张:1、mesh函数x, y=meshgrid(-4:.2:4);R=sqrt(x.2+y.2);z=-cos(R);mesh(x,y,z)xlabel(xin-4,4,fontweight,bold);ylabel(yin-4,4,fontweight,bold);zlabel(z=-cos(sqrt(x2+y2),fontweight,bold);title(旋转曲面,fontsize,15,fontweight,bold,fontname,隶书);二、meshc函数其他不变,把上面代码中的mash换成mashc,得到的图如下,在网孔线下方绘制了轮廓线。三、mashz函数Matlab 三维作图1画一个可透视的椭球figurea = 15;b = 10;c = 5;k = 5;n = 2k-1;theta = pi*(-n:2:n)/n;phi = (pi/2)*(-n:2:n)/n;X = a*cos(phi)*cos(theta);Y = b*cos(phi)*sin(theta);Z = c*sin(phi)*ones(size(theta);surf(X,Y,Z,FaceColor,interp,. EdgeColor,none,. FaceLighting,phong)axis tightcamlight leftalpha(.33) % 产生透视效果这是在7.1.上画的图:.建立空间等高线X,Y = meshgrid(-2:.25:2);Z = X.*exp(-X.2-Y.2);contour3(X,Y,Z,30)h = findobj(Type,patch);set(h,LineWidth,2)title( 空间等高线 ).4.2 三维作图4.2.1 mesh(Z)语句mesh(Z)语句可以给出矩阵Z元素的三维消隐图,网络表面由Z坐标点定义,与前面叙述的x-y平面的线格相同,图形由邻近的点连接而成它可用来显示用其它方式难以输出的包含大量数据的大型矩阵,也可用来绘制Z变量函数显示两变量的函数Z=f(x,y),第一步需产生特定的行和列的x-y矩阵然后计算函数在各网格点上的值最后用mesh函数输出下面我们绘制sin(r)/r函数的图形建立图形用以下方法:x=-8:.5:8;y=x;x=ones(size(y)*x;y=y*ones(size(y);R=sqrt(x.2+y.2)+eps;z=sin(R)./R;mesh(z) %试运行mesh(x,y,z),看看与mesh(z)有什么不同之处?各语句的意义是:首先建立行向量x,列向量y;然后按向量的长度建立1-矩阵;用向量乘以产生的1-矩阵,生成网格矩阵,它们的值对应于x-y坐标平面;接下来计算各网格点的半径;最后计算函数值矩阵Z用mesh函数即可以得到图形图4.2.1三维消隐图第一条语句x的赋值为定义域,在其上估计函数;第三条语句建立一个重复行的x矩阵,第四条语句产生y的响应,第五条语句产生矩阵R(其元素为各网格点到原点的距离)用mesh方法结果如上另外,上述命令系列中的前4行可用以下一条命令替代:x, y=meshgrid(-8:0.5:8)4.2.2与mesh相关的几个函数(1) meshc与函数mesh的调用方式相同,只是该函数在mesh的基础上又增加了绘制相应等高线的功能下面来看一个meshc的例子:x,y=meshgrid(-4:.5:4);z=sqrt(x.2+y.2);meshc(z) %试运行meshc(x,y,z),看看与meshc(z)有什么不同之处?我们可以得到图形:图4.2.2.1meshc图地面上的圆圈就是上面图形的等高线(2)函数meshz与mesh的调用方式也相同,不同的是该函数在mesh函数的作用之上增加了屏蔽作用,即增加了边界面屏蔽例如:x,y=meshgrid(-4:.5:4);z=sqrt(x.2+y.2);meshz(z) %试运行meshz(x,y,z),看看与meshz(z)有什么不同之处?我们得到图形:图4.2.2.2meshz图4.2.3其它的几个三维绘图函数(1)在Matlab中有一个专门绘制圆球体的函数sphere,其调用格式如下:x,y,z=sphere(n)此函数生成三个(n+1)(n+1)阶的矩阵,再利用函数surf(x,y,z)可生成单位球面x,y,z=sphere此形式使用了默认值n=20sphere(n)只绘制球面图,不返回值运行下面程序:sphere(30);axis square;我们得到球体图形:图4.2.3.1球面图若只输入sphere画图,则是默认了n=20的情况(2) surf函数也是Matlab中常用的三维绘图函数其调用格式如下:surf(x,y,z,c)输入参数的设置与mesh相同,不同的是mesh函数绘制的是一网格图,而surf绘制的是着色的三维表面Matlab语言对表面进行着色的方法是,在得到相应网格后,对每一网格依据该网格所代表的节点的色值(由变量c控制),来定义这一网格的颜色若不输入c,则默认为c=z我们看下面的例子:%绘制地球表面的气温分布示意图a,b,c=sphere(40);t=abs(c); %求绝对值surf(a,b,c,t);axis equalcolormap(hot)我们可以得到图形如下:图4.2.3.2等温线示意图4.2.4图形的控制与修饰(1)坐标轴的控制函数axis,调用格式如下:axis(xmin,xmax,ymin,ymax,zmin,zmax)用此命令可以控制坐标轴的范围与axis相关的几条常用命令还有:axis auto自动模式,使得图形的坐标范围满足图中一切图元素axis equal严格控制各坐标的分度使其相等axis square使绘图区为正方形axis on恢复对坐标轴的一切设置axis off取消对坐标轴的一切设置axis manual以当前的坐标限制图形的绘制(2)grid on在图形中绘制坐标网格grid off取消坐标网格(3)xlabel, ylabel, zlabel分别为x轴, y轴, z轴添加标注title为图形添加标题以上函数的调用格式大同小异,我们以xlabel为例进行介绍:xlabel(标注文本,属性1,属性值1,属性2,属性值2,)这里的属性是标注文本的属性,包括字体大小、字体名、字体粗细等例如:x, y=meshgrid(-4:.2:4);R=sqrt(x.2+y.2);z=-cos(R);mesh(x,y,z)xlabel(xin-4,4,fo

温馨提示

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

评论

0/150

提交评论