Matlab三维立体画图.pdf

上传人:tbuqq 文档编号:4741499 上传时间:2019-12-05 格式:PDF 页数:9 大小:1.26MB
返回 下载 相关 举报
Matlab三维立体画图.pdf_第1页
第1页 / 共9页
亲,该文档总共9页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《Matlab三维立体画图.pdf》由会员分享,可在线阅读,更多相关《Matlab三维立体画图.pdf(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) x

2、label(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 画一个可透视的椭球 figure a = 15; b = 10; c = 5; k = 5; n =

3、 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 tight camlight left alpha(.33) % 产生透视效果 这是在 7.1.上画的图: 建立空间等高线X,Y = meshgrid(-2:.25:2);

4、 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 函

5、数输出 下面我们绘制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 三维消隐图 第

6、一条语句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(

7、x,y,z) ,看看与meshc(z) 有什么不同之处? 我们可以得到图形: 图 4.2.2.1 meshc图 地面上的圆圈就是上面图形的等高线 (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中有一个专门绘制圆球体的

8、函数sphere ,其调用格式如下: x,y,z=sphere(n) 此函数生成三个(n+1) (n+1) 阶的矩阵,再利用函数surf(x,y,z) 可生成单位球面 x,y,z=sphere 此形式使用了默认值n=20 sphere(n) 只绘制球面图,不返回值 运行下面程序: sphere(30); axis square; 我们得到球体图形: 图 4.2.3.1 球面图 若只输入sphere 画图,则是默认了n=20 的情况 (2) surf函数也是Matlab中常用的三维绘图函数其调用格式如下: surf(x,y,z,c) 输入参数的设置与mesh 相同,不同的是mesh 函数绘制的是

9、一网格图,而 surf 绘制的是着 色的三维表面Matlab语言对表面进行着色的方法是,在得到相应网格后,对每一网格依 据该网格所代表的节点的色值(由变量c 控制),来定义这一网格的颜色若不输入c,则 默认为 c=z 我们看下面的例子: %绘制地球表面的气温分布示意图 a,b,c=sphere(40); t=abs(c); %求绝对值 surf(a,b,c,t); axis equal colormap(hot) 我们可以得到图形如下: 图 4.2.3.2 等温线示意图 4.2.4图形的控制与修饰 (1) 坐标轴的控制函数axis,调用格式如下: axis(xmin,xmax,ymin,yma

10、x,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 为图形添加标题 以上函数的

11、调用格式大同小异,我们以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 添加标注

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1