Matlab三维立体画图

上传人:e****s 文档编号:1348460 上传时间:2017-06-08 格式:DOC 页数:9 大小:341.50KB
返回 下载 相关 举报
Matlab三维立体画图_第1页
第1页 / 共9页
Matlab三维立体画图_第2页
第2页 / 共9页
Matlab三维立体画图_第3页
第3页 / 共9页
Matlab三维立体画图_第4页
第4页 / 共9页
Matlab三维立体画图_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《Matlab三维立体画图》由会员分享,可在线阅读,更多相关《Matlab三维立体画图(9页珍藏版)》请在金锄头文库上搜索。

1、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

2、,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;p

3、hi = (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

4、= 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;

5、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 的响应,第

6、五条语句产生矩阵 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.1 meshc 图地面上的圆

7、圈就是上面图形的等高线(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.2 meshz 图4.2.3 其它的几个三维绘图函数(1)在 Matlab 中有一个专门绘制圆球体的函数 sphere,其调用格式如下:x,y,z=sphere(n) 此函数生成三个(n+1)(n+1)阶的矩阵,再利用函数 surf(x,

8、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 语言对表面进行着色的方法是,在得到相应网格后,对每一网格依据该网格所代表的节点的色值(由变

9、量 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 equa

10、l 严格控制各坐标的分度使其相等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,fontweight,bold);ylabel(yin-4,4,fontweight,bold);zlabel(z=-cos(sqrt(x2+y2),fontweight,bold);title(旋转曲面,fontsize,15,fontweight,bold,fontname,隶书);图 4.2.4.1 添加标注

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 经营企划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号