第3章-选讲-matlab三维绘图功能

上传人:101****457 文档编号:91750516 上传时间:2019-07-01 格式:PPT 页数:56 大小:864KB
返回 下载 相关 举报
第3章-选讲-matlab三维绘图功能_第1页
第1页 / 共56页
第3章-选讲-matlab三维绘图功能_第2页
第2页 / 共56页
第3章-选讲-matlab三维绘图功能_第3页
第3页 / 共56页
第3章-选讲-matlab三维绘图功能_第4页
第4页 / 共56页
第3章-选讲-matlab三维绘图功能_第5页
第5页 / 共56页
点击查看更多>>
资源描述

《第3章-选讲-matlab三维绘图功能》由会员分享,可在线阅读,更多相关《第3章-选讲-matlab三维绘图功能(56页珍藏版)》请在金锄头文库上搜索。

1、MATLAB 三维绘图功能,二维图形 三维图形 图形色彩处理 句柄图形技术 图像显示技术 动画制作,三维绘图,三维绘图的主要功能: 绘制三维线图 绘制等高线图 绘制伪彩色图 绘制三维网线图 绘制三维曲面图、柱面图和球面图 绘制三维多面体并填充颜色,(一)三维曲线图,plot3 基本的三维图形指令 调用格式: plot3(x,y,z) x,y,z是长度相同的向量,以x, y, z为坐标绘 制三维曲线 plot3(X,Y,Z) X,Y,Z是维数相同的矩阵,以X,Y,Z对应列为坐标绘制三维曲线 plot3(x1,y1,z1,s1, x2,y2,z2,s2, ) 选项的定义与plot函数相同,二维图形

2、的所有基本特性对三维图形全都适用。 定义三维坐标轴大小 axis(xmin xmax ymin ymax zmin zmax ) grid on(off) 绘制三维网格 text(x,y,z,string) 三维图形标注 子图和多窗口也可以用到三维图形中,例:绘制三维线图 t=0:pi/50:10*pi; plot3(t,sin(t),cos(t),r:),例:绘制螺旋线 x=cos(t) y=sin(t) z=t 0t 4*pi t=0:0.001:4*pi; x=cos(t);y=sin(t);z=t; plot3(x,y,z) xlabel(x轴),ylabel(y轴),zlabel(z

3、轴) grid on,(二) 三维饼图 pie3(4 3 6 8 9),(三)三维多边形,fill3 = fill 三维多边形的绘制和填色与二维多边形完全相同 调用格式: fill3(x,y,z,s) 与二维相同,例: 用随机顶点坐标画出5个粉色的三角形,并用黄色的表示顶点 y1=rand(3,5);y2=rand(3,5);y3=rand(3,5); fill3(y1,y2,y3,m);hold on;plot3(y1,y2,y3,yo),(四)三维网格图,所谓网格图,是指把相邻的数据点连接起来形成的网状曲面。利用在X-Y平面的矩形网格点上的Z轴坐标值,Matlab定义了一个网格曲面。三维网

4、格图的形成原理为:在X-Y平面上指定一个长方形区域,采用与坐标轴平行的直线将其分格;计算矩形网格点上的函数值,即Z轴的值,得到三维空间的数据点;将这些数据点分别用处于X-Z或者平行面内的曲线和处于Y-Z或者平行面的曲面连接起来,即形成网格图。网格图对于显示大型的数值矩阵很有用处。,1、mesh 三维网线绘图函数 调用格式: mesh(z) z为nm的矩阵,x与y坐标为元素的下标 mesh(x,y,z) x, y, z分别为三维空间的坐标位置,例,矩阵的三维网线图 z=rand(6); z=round(z); mesh(z);,例:8阶hadamard矩阵的网线图,h2=1 1;1 -1;h4=

5、h2 h2;h2 -h2 h8=h4 h4;h4 -h4 1 1 1 1 1 1 1 1 1 -1 1 -1 1 -1 1 -1 1 1 -1 -1 1 1 -1 -1 1 -1 -1 1 1 -1 -1 1 1 1 1 1 -1 -1 -1 -1 1 -1 1 -1 -1 1 -1 1 1 1 -1 -1 -1 -1 1 1 1 -1 -1 1 -1 1 1 -1 mesh(h8),2、meshgrid 网线坐标值计算函数 meshgrid用于从数组a和b产生网格。生成的网格矩阵A和B大小是 相同的。 A,B= meshgrid(a,b)生成size(b)Xsize(a)大小的矩阵A和B。这

6、些 矩阵表示整个矩形区域内的x和y坐标。 它相当于a从一行重复增加到size(b)行,把b转置成一列再重复增加到 size(a)列。因此命令等效于:A=ones(size(b)*a;B=b*ones(size(a) a=1:2 b=3:5 A,B=meshgrid(a,b) A = B = 1 2 3 3 1 2 4 4 1 2 5 5 B,A=meshgrid(b,a),z=f(x,y) 根据x,y坐标找出z的高度 例:绘制z=x2+y2的三维网线图形 x=-5:5; y=x; X,Y=meshgrid(x,y); Z=X.2+Y.2 ; mesh(X,Y,Z),(五)三维曲面图,surf

7、三维曲面绘图函数,与网格图看起来一样 与三维网线图的区别: 网线图:线条有颜色,内部是黑色的(无颜色) 曲面图:线条是黑色的,内部有颜色(把线条之间的空挡填充颜色,沿z轴按每一网格变化),调用格式: surf(x,y,z) 绘制三维曲面图,x,y,z为图形坐标向量 peaks 函数 为了方便测试立体绘图,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(

8、-(x+1).2 - y.2) x,y,z=peaks; mesh(x,y,z) surf(x,y,z),surfc(X,Y,Z) 带等高线的曲面图 X,Y,Z=peaks(30);surfc(X,Y,Z),surfl(X,Y,Z) 被光照射带阴影的曲面图 X,Y,Z=peaks(30);surfl(X,Y,Z),cylinde(r,n) 三维柱面绘图函数 r 为半径;n为柱面圆周等分数 例:绘制三维陀螺锥面 t1=0:0.1:0.9; t2=1:0.1:2; r=t1 -t2+2; x,y,z=cylinder(r,30); surf(x,y,z); grid,sphere 三维球面绘图函数

9、 sphere:函数产生单位球体的x、y、z轴坐标,并用于mesh和surf函数的调用,绘制的球体由20*20个面组成。调用格式为:sphere(n):在直接绘制一个圆心在原点、半径为1的球面。参数n确定了球面绘制的精度,n值越大,则数据点越多,绘制出的球面越精确。 X,Y,Z = sphere(n):分别返回球体的笛卡尔坐标到三个(n+1)*(n+1)阶的矩阵中。用户可以用mesh(X,Y,Z)和surf(X,Y,Z)函数来绘制球体。 例:绘制两个同心球面 figure (1) m,n,p=sphere(50); t=abs(p); surf(m,n,p,t); hold on; mesh(

10、2*m,2*n,2*p), colormap(hot); hold off; hidden off axis equal,(六) 图形修饰方法,图形颜色的修饰 matlab 有极好的颜色表现功能,其颜色数据又构成了一维新的数据集合,也可称为四维图形 colormap(MAP) 色图设定函数,MAP为m3维色图矩阵 图形颜色可根据需要任意生成,也可用matlab配备的色图函数 shading设置颜色色调。该命令控制表面和块等图形对象颜色的渲染。,shading faceted 带重叠的黑色网格线的平面色调模式,这也是默认的色调模式。,shading flat 去掉黑色线条,根据小方块的值确定颜色

11、,shading interp 颜色整体改变,根据小方块四角的值差补过度点的值确定颜色,peaks(30); shading interp; colormap(hot),X,Y,Z=peaks(30); surfl(X,Y,Z) shading interp; colormap(cool); axis off,小结:色彩与效果 mesh, surf, surfc, surfl比较 : shading :涂色方式 clf; x= -1.5:0.2:1.5; y=-1:0.2:1; X,Y=meshgrid(x,y); p=sqrt(4-X.2/9-Y.2/4); subplot(3,2,1);m

12、esh(p); %有网格 格子图,色调方向:有上到下 subplot(3,2,2);surf(p); %默认的方向:色调方向:有上到下 subplot(3,2,3);surfc(p); %带等高线;色调方向:有上到下 subplot(3,2,4);surfl(p); %色调方向:沿y轴方向 shading interp %平滑涂色 图,无格线 subplot(3,2,5);surfl(p) shading faceted %有网格涂色 格子图,有格线; subplot(3,2,6);surfl(p) shading flat %有网格涂色 格子图,无格线;,(七)图形效果修饰,透视与消隐 用于

13、网线图 裁剪修饰 用于网线图、曲面图 视角修饰 观察不同角度的三维视图 其它修饰: a. 水线修饰 b. 等高线修饰,透视与消隐 p=peaks(30);mesh(p);hidden on,p=peaks(30); mesh(p); hidden off,裁减修饰 p=peaks; p(30:40,20:30)=NaN*p(30:40,20:30); surf(p),p=peaks; p(30:40,20:30)=nan*p(30:40,20:30); mesh(peaks,p),例:z=x2+y2在-10 10区域的图形但是要挖掉x x,y=meshgrid(-10:0.1:10); z=x

14、.2+y.2; subplot(121) mesh(x,y,z) sel=xsin(y); z(sel)=nan; subplot(122) mesh(x,y,z),视角修饰(函数view(az,el) az -方位角;el - 俯视角。缺省值为:az=-37.5; el=30 例:观察不同视角的波峰图形 z=peaks(40); subplot(2,2,1);mesh(z); subplot(2,2,2);mesh(z);view(-15,60); subplot(2,2,3);mesh(z);view(-90,0); subplot(2,2,4);mesh(z);view(-7,-10);

15、,其它修饰: a. 水线修饰(waterfall) waterfall(peaks(30),b. 等高线修饰 二维 contour(Z,n)-绘制n条等高线 C= contourc(Z,n)-计算n条等高线的坐标 Clable(c)-给等高线加标注 例、在二维平面上绘制peaks函数的10条等高线 contour(peaks,10); C=contourc(peaks,10);clabel(C),contour3(peaks,20),补充:图形色彩处理,1、颜色映像原理 颜色映像:把三基色红色(R)、绿色(G)和蓝色(B)按照不同的比例组合起来,形成新的颜色。 Matlab 的颜色数据集合为红、绿、蓝三颜色矩阵R,G,B,维数m3 , R,G,B在0 1区间连续取值,理论上颜色种类可达无穷多种。, 饱和色 0 0 0 黑色

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

当前位置:首页 > 中学教育 > 职业教育

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