收藏 分销(赏)

第--章-matlab计算的可视化第二次课优秀文档.ppt

上传人:二*** 文档编号:12570101 上传时间:2025-11-02 格式:PPT 页数:45 大小:1.36MB 下载积分:5 金币
下载 相关 举报
第--章-matlab计算的可视化第二次课优秀文档.ppt_第1页
第1页 / 共45页
本文档共45页,全文阅读请下载到手机保存,查看更方便
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,河南理工大学测绘学院,第四章,MATLAB,计算的可视化,三维图形具有更强的表现力。,Matlab,提供了丰富的函数来绘制三维图形。绘制三维图形与绘制二维图形的方法类似,很多是从二维绘图的基础上扩展而来的。,4.2,三维图形的绘制,4.2.1,三维曲线,plot3,函数,最基本的三维图形函数为,plot3,,其调用格式为,plot3(x,y,z):,其中,x,y,和,z,为,3,个相同维数的向量。函数绘出这些向量所表示的点的曲线。,plot3(X,Y,Z):,其中,X,Y,和,Z,为,3,个相同阶数的矩阵,函数绘出,3,矩阵的列向量的曲线;,4.2,三维图形的绘制,若要定义不同的线型,使用以下形式:,plot3(X,Y,Z,s):,其中,s,为定义线型的字符串,形式同,plot,函数。,plot3(x1,y1,z1,s1,x2,y2,z2,s2,xn,yn,zn,sn),其中,每一组,x,,,y,,,z,组成一组曲线的坐标参数,选项的定义和,plot,函数相同。当,x,、,y,、,z,是同维向量时,则,x,、,y,、,z,对应元素构成一条三维曲线;当,x,、,y,、,z,是同维矩阵时,则以,x,、,y,、,z,对应列元素绘制三维曲线,曲线条数等于矩阵列数,4.2,三维图形的绘制,【,例,4.23】,绘制三维曲线。,程序如下:,t=0:pi/10:10*pi;,x=sin(t)+t.*cos(t);,y=cos(t)-t.*sin(t);,z=t;,plot3(x,y,z);,axis(-30 30-30 30 0 35),title(Line in 3-D Space);,xlabel(X);ylabel(Y);zlabel(Z);,grid on;,4.2,三维图形的绘制,【,例,4.24】,绘制三维螺旋线。,x=0:pi/50:10*pi;,y=sin(x);,z=cos(x);,plot3(x,y,z);,4.2,三维图形的绘制,【,例,4.25】,绘制参数为矩阵的三维图。,x,y=meshgrid(-2:0.1:2,-2:0.1:2);,z=x.*exp(-x.2-y.2);,plot3(x,y,z),4.2,三维图形的绘制,三维曲面,1,、网图函数,上例中用到了,meshgrid,函数,该函数为网图函数的一种,,matlab,语言提供了一系列的网图函数,如下表:,函数名,说明,mesh,三维网格图,meshc,将网格与等高线结合,meshz,屏蔽的网格图,meshgrid,生成网格点,4.2,三维图形的绘制,matlab,语言对于网格的处理方法是:将,xy,平面按指定方式分隔成平面网格,然后根据程序中给定的方式计算第三维变量的值,即,z,轴的值,与对应的,xy,平面的坐标构成三维点元素,根据由此得到的,(x,z),(y,z),计算各平面的曲线,彼此相连就构成了网格图。,4.2,三维图形的绘制,函数,meshgrid,是网图函数中最简单的一个,其作用是将给定的区域按一定的方式划分成平面网格,该平面网格可以用来绘制三维曲面,具体调用格式如下:,X,Y=meshgrid(x,y):,其中,x,y,为给定的向量,一方面可以用来定义网格划分区域;另一方面也可以用来定义网格划分方法。矩阵,X,和,Y,则是网格划分后的数据矩阵,。,4.2,三维图形的绘制,【,例,4.26】,x=1:3;,y=22:25;,X,Y=meshgrid(x,y)%,在,1,,,3 22,25,区域生成为网 格坐标,X=,1 2 3,1 2 3,1 2 3,1 2 3,Y=,22 22 22,23 23 23,24 24 24,25 25 25,4.2,三维图形的绘制,函数,mesh,用来绘制三维的网图,调用格式如下;,Mesh(X,Y,Z,C)%,绘制四个矩阵变量的彩色网格面图形。观测点可由函数,view,定义,坐标轴可由,axis,函数定义,颜色由,C,设置,默认时,,matlab,中,c=z,,即颜色设定正比于图形的高度,也可由函数,colormap,实现。,mesh(X,Y,Z)%,使,C=Z,,即网图高度正比于图高,mesh(x,y,Z),和,mesh(x,y,Z,C),此处使用两个向量代替两个矩阵,同时要求,length(x)=n,length(y)=m,且,m,n=size(Z),。在这种情况下,网格线的顶点为(,x(j),y(i),z(i,j),的三倍。,4.2,三维图形的绘制,注意:,x,对应于,Z,的列,而,y,对应于,Z,的行。,mesh(Z),和,mesh(Z,C),使用,x=1:n,及,y=1:m,。在此情况下,高度,Z,为单值函数。,【,例,4.27】,x=-8:0.5:8;y=x;,a=ones(size(y)*x;,b=y*ones(size(x);,c=sqrt(a.2+b.2)+eps;,z=sin(c)./c;,mesh(z),4.2,三维图形的绘制,Mesh,函数的第三个输入参数将设置生成图中的颜色,,matlab,允许用户增加一个输入变量专门设置面图色彩。当,mesh,函数仅有一个输入变量时,将以输入矩阵的下标生成平面网格系,并由此生成三维面图。,【,例,4.28】mesh,函数绘制的,Hilbert,矩阵三维面图。,z=hilb(10),;,mesh(z),4.2,三维图形的绘制,【,例,4.29】,绘制三维曲面图,X,Y=meshgrid(0:pi/100:pi,0:pi/100:pi/2);,z=sin(X.2)+cos(Y.2);,mesh(X,Y,z),axis(0 4 0 1.8-1.5 1.5);,4.2,三维图形的绘制,函数,meshc,与函数,mesh,调用的方式相同,只是该函数在,mesh,的作用之上又增加了,contour,函数的功能,即绘制相应的等高线。,【,例,4.30】meshc,函数绘制的三维面图。,X,Y=meshgrid(-4:0.5:4);,Z=sqrt(X.2+Y.2);,meshc(Z);,slice(X,Y,Z,V,Sx,Sy,Sz):绘制向量Sx,Sy,Sz中的点沿x,y,z方向的切片图。,z=peaks(x,y);,函数meshc与函数mesh调用的方式相同,只是该函数在mesh的作用之上又增加了contour函数的功能,即绘制相应的等高线。,bar3和bar3h函数在x指定的位置上绘制y中元素的条形图,x默认时,若y是长度为n的向量,则x轴坐标从1变化到n;若y是mn的矩阵,则x轴坐标从1变化到n,y中的元素按行分组。,当x、y、z是同维向量时,则x、y、z对应元素构成一条三维曲线;,xlabel(X-axis),ylabel(Y-axis),zlabel(Z-axis);,plot3(x,y,z);,subplot(1,2,2);,matlab语言中的三维图形函数,trimesh(tri,x,y,z);,1 2 3,subplot(1,2,2);,plot3(X,Y,Z):其中X,Y和Z为3个相同阶数的矩阵,函数绘出3矩阵的列向量的曲线;,z=peaks(x,y);,tri=delaunay(x,y);,x,y,z=cylinder(sin(t),30);,x=-8:0.,4.2,三维图形的绘制,函数,meshz,(带底座的三维网格曲面函数)与,mesh,调用的方式也相同,不同的是该函数在,mesh,函数的作用之上增加了屏蔽的作用,即增加了边界面屏蔽。,【,例,4.31】,使用,meshz,函数绘制的三维面图。,X,Y=meshgrid(-4:0.5:4);,Z=sqrt(X.2+Y.2);,meshz(Z);,4.2,三维图形的绘制,2.,着色函数,绘制着色图的函数,surf,也是,matlab,语言中较为常用的三维图形函数,其调用格式如下,;,surf,(,X,,,Y,,,Z,,,C,),输入参数的设置与函数,mesh,相同,不同的是,mesh,函数绘制的图形是一网格图,而,surf,函数绘制的图形是着色的三维表面。,Matlab,语言对表面进行着色的方法是,在得到相应的网格后,对每一网格依据该网格所代表的节点的色值(由变量,C,控制),来定义这一网格的颜色。,4.2,三维图形的绘制,【,例,4.32】,绘制三维着色图。,X,Y=meshgrid(-4:0.5:4);,Z=sqrt(X.2+Y.2);,surf(Z),4.2,三维图形的绘制,【,例,4.33】,在,xy,平面内选择区域,-2,2,-2,2,绘制函数,的,4,种三维曲面图。,程序转下页,:,4.2,三维图形的绘制,xx=linspace(-2,2,25);yy=xx;,X,Y=meshgrid(xx,yy);,Z=-exp(-X.2-Y.2);,subplot(2,2,1);,mesh(X,Y,Z);,title(mesh(X,Y,Z);,subplot(2,2,2);,surf(X,Y,Z);,title(surf(X,Y,Z);,subplot(2,2,3);,meshz(X,Y,Z);,title(meshz(X,Y,Z);,subplot(2,2,4);,meshc(X,Y,Z);,title(meshc(X,Y,Z);,axis(-2 2-2 2-1.2 0);,4.2,三维图形的绘制,3.,特殊的三维图形函数,matlab,语言中的三维图形函数,函数名,说明,函数名,说明,bar3,三维条形图,surfc,着色图与等高线图结合,comet3,三维彗星图,trisurf,三角形表面图,ezgraph3,函数控制绘制三维图,trimesh,三角形网格图,pie3,三维饼状图,waterfall,瀑布图,scatter3,三维散射图,cylinder,柱面图,stem3,三维离散数据图,sphere,球面图,4.2,三维图形的绘制,【,例,4.34】,绘制三维饼状图。,x=2,4,6,8;,pie3(x,0,0,1,0);,4.2,三维图形的绘制,【,例,4.35】,绘制着色图与三维等高线图。,X,Y=meshgrid(-4:0.5:4);,Z=sqrt(X.2+Y.2);,surfc(X,Y,Z);,4.2,三维图形的绘制,与二维图形部分的等高线函数,contour,相类似,三维图形绘制函数中也有相应的等高线函数,contour3,,其调用格式与函数,contour,相同。,【,例,4.36】,绘制三维等高线图。,X,Y=meshgrid(-4:0.5:4);,contour3(peaks(X,Y),25);,4.2,三维图形的绘制,peaks,函数,:,peaks,函数(多峰函数)常用于三维曲面的演示。该函数可以用来生成绘图数据矩阵,矩阵元素由函数,在矩形区域,-3,3-3,3,的等分网格点上的函数值确定。,例如:,z=peaks(30);,将生成一个,30,30,的矩阵,z,,即分别沿,x,和,y,方向将区间,3,,,3,等分成,29,份,并计算这些网格点上的函数值。默认参数时将生成一个,49,49,的矩阵。也可以根据网格坐标矩阵,x,、,y,重新计算函数值矩阵。,4.2,三维图形的绘制,例如:,x,y=meshgrid(-5:0.1:5);,z=peaks(x,y);,生成的数值矩阵可以作为,mesh,、,surf,等函数的参数而绘制出多峰函数曲面图。另外,若在调用,peaks,函数时不带输出参数,则直接绘制出多峰函数曲面图。,4.2,三维图形的绘制,cylinder,函数:,cylinder,函数用于绘制柱面,其调用格式为,x,y,z=cylinder(R,n),其中,,R,是一个向量,存放柱面各个等间隔高度上的半径;,n,表示在圆柱圆周上有,n,个间隔点,默认时表示有,20,个间隔点。例如,,cylinder(3),生成一个圆柱,,cylinder(10,1),生成一个圆锥,而,t=0:pi/100:4*pi;,R=sin(t);,cylinder(R,30),生成一个正弦型柱面。,4.2,三维图形的绘制,【,例,4.37】,绘制三维曲面图形。,t=0:pi/20:2*pi;,subplot(1,2,1);,x,y,z=cylinder(sin(t),30);,surf(x,y,z);,subplot(1,2,2);,x,y,z=peaks(100);,mesh(x,y,z);,4.2,三维图形的绘制,【,例,4.38】,绘制柱面图。,x=0:pi/20:pi*3;,r=5+cos(x);,a,b,c=cylinder(r,30);,mesh(a,b,c),4.2,三维图形的绘制,sphere,函数,:,sphere,函数用于绘制三维球面,其调用格式为,x,y,z=sphere(n),该函数将产生(,n,+,1,),(,n,+,1,)矩阵,x,、,y,、,z,,采用这,3,个矩阵可以绘制出圆心位于原点、半径为,1,的单位球体。若在调用该函数时不带输出参数,则直接绘制所需球面。,n,决定了球面的圆滑程度,其默认值为,20,。若,n,值取得较小,则将绘制出多面体表面图。,4.2,三维图形的绘制,【,例,4.39】,绘制地球表面的气温分布示意图。,a,b,c=sphere(40);,t=abs(c);,surf(a,b,c,t);,axis(equal);,axis(square);,colormap(hot),t=0:pi/100:4*pi;,z=peaks(x,y);,函数meshc与函数mesh调用的方式相同,只是该函数在mesh的作用之上又增加了contour函数的功能,即绘制相应的等高线。,trisurf(Tri,X,Y,Z):显示由m3的矩阵Tri定义的三角形网格,并作为刻面。,1 2 3,X,Y=meshgrid(-4:0.,32】绘制三维着色图。,cylinder函数:cylinder函数用于绘制柱面,其调用格式为 x,y,z=cylinder(R,n),当x、y、z是同维矩阵时,则以x、y、z对应列元素绘制三维曲线,曲线条数等于矩阵列数,surf(x,y,z);,axis(-2 2-2 2-1.,peaks函数:peaks函数(多峰函数)常用于三维曲面的演示。,当x、y、z是同维向量时,则x、y、z对应元素构成一条三维曲线;,4.2,三维图形的绘制,bar3,和,bar3h,函数,:,分别绘制垂直和水平三维条形图,其调用格式,:,bar3(x,y);,bar3h(x,y);,其中,,x,是向量,,y,是向量或矩阵,,x,向量元素的个数与,y,的行数相同。,bar3,和,bar3h,函数在,x,指定的位置上绘制,y,中元素的条形图,,x,默认时,若,y,是长度为,n,的向量,则,x,轴坐标从,1,变化到,n;,若,y,是,m,n,的矩阵,则,x,轴坐标从,1,变化到,n,,,y,中的元素按行分组。,4.2,三维图形的绘制,【,例,4.40】,绘制三维条形图,x=51 82 34 47;67 78 68 90;78 85 65 50;,bar3(x);,Bar3h(x);,4.2,三维图形的绘制,三维多边形函数,fill3:,可在三维空间内绘制出多边形,并填充颜色。其调用格式:,fill3(x,y,z,c),其中,使用,x,y,z,作为多边形的顶点,而,c,指定填充的颜色。,【,例,4.41】,X=0 1 1 2;1 1 2 2;0 0 1 1;,Y=1 1 1 1;1 0 1 0;0 0 0 0;,Z=1 1 1 1;1 0 1 0;0 0 0 0;,C=0.5000 1.0000 1.0000 0.5000;,0.3330 0.3330 0.5000 0.5000;,fill3(X,Y,Z,C),4.2,三维图形的绘制,4.2,三维图形的绘制,瀑布图函数,waterfall,:,它的用法及图形效果与,meshz,函数相似,只是它的网格线是在,x,轴方向出现,具有瀑布效果。,【,例,4.42】,绘制多峰函数的瀑布图和等高线图。,程序如下:,subplot(1,2,1);,X,Y,Z=peaks(30);,waterfall(X,Y,Z),xlabel(X-axis),ylabel(Y-axis),zlabel(Z-axis);,subplot(1,2,2);,contour3(X,Y,Z,12,k);%,其中,12,代表高度的等级数,xlabel(X-axis),ylabel(Y-axis),zlabel(Z-axis);,4.2,三维图形的绘制,4.2,三维图形的绘制,trimesh,函数:,生成三角形网格图,调用格式如下:,trimesh(Tri,X,Y,Z):,显示由,m3,的矩阵,Tri,定义的三角形网格。,Tri,的每行数据通过索引包含,X,Y,Z,顶点的矢量或矩阵来定义一个三角形。,trimesh(Tri,X,Y,Z,C):,用与,surf,函数相同的方式指定,C,定义的颜色。,trimesh(,PropertyName,PropertyValue,):,为函数创建的,patch,图形对象指定其他属性名和属性值。,4.2,三维图形的绘制,【,例,4.43】,创建顶点矢量和网格矩阵,然后创建一个三角形网格图。,x=rand(1,50);,y=rand(1,50);,z=peaks(6*x-3,6*x-3);,tri=delaunay(x,y);,trimesh(tri,x,y,z);,4.2,三维图形的绘制,三角形刻面图函数,trisurf,:,生成三角形表面图,调用格式如下:,trisurf(Tri,X,Y,Z):,显示由,m3,的矩阵,Tri,定义的三角形网格,并作为刻面。,Tri,的每行数据通过矢量或矩阵,X,Y,和,Z,赋索引值来定义一个三角形。,trisurf(Tri,X,Y,Z,C):,用与,surf,函数相同的方式指定,C,定义的颜色。,4.2,三维图形的绘制,【,例,4.43】,创建顶点矢量和刻面矩阵,然后创建一个三角形刻面图。,x=rand(1,50);,y=rand(1,50);,z=peaks(6*x-3,6*x-3);,tri=delaunay(x,y);,trisurf(tri,x,y,z);,y=cos(t)-t.,bar3和bar3h函数在x指定的位置上绘制y中元素的条形图,x默认时,若y是长度为n的向量,则x轴坐标从1变化到n;若y是mn的矩阵,则x轴坐标从1变化到n,y中的元素按行分组。,a,b,c=cylinder(r,30);,也可以根据网格坐标矩阵x、y重新计算函数值矩阵。,矩阵X和Y则是网格划分后的数据矩阵。,x,y=meshgrid(-5:0.,其中,使用x,y,z作为多边形的顶点,而c指定填充的颜色。,slice(X,Y,Z,V,Sx,Sy,Sz):绘制向量Sx,Sy,Sz中的点沿x,y,z方向的切片图。,此时自变量为三维的,而图形应当是四维的。,绘制着色图的函数surf也是matlab语言中较为常用的三维图形函数,其调用格式如下;,z=hilb(10);,若n值取得较小,则将绘制出多面体表面图。,x=0:pi/20:pi*3;,X=0 1 1 2;1 1 2 2;0 0 1 1;,trimesh(Tri,X,Y,Z):显示由m3的矩阵Tri定义的三角形网格。,在矩形区域-3,3-3,3的等分网格点上的函数值确定。,4.3,四维表现图,对于三维图形,通常可以利用,z=z(x,y),的确定或不确定的函数关系来绘制可视化图形,此时自变量是二维的。而在高等物理、力学等的研究中经常会遇到形如,v=v(x,y,z),的函数。此时自变量为三维的,而图形应当是四维的。但是由于我们所处空间和思维的局限性,在计算机的屏幕上只能表现出三个空间变量。为了表现四维图像,引入了三维实体的思维切片色图,它由函数,slice,来实现,其调用格式如下:,4.3,四维表现图,slice(X,Y,Z,V,Sx,Sy,Sz):,绘制向量,Sx,Sy,Sz,中的点沿,x,y,z,方向的切片图。数组,X,Y,Z,用来定义,V,的坐标。在每一点的颜色必须由对容量,V,的插值来决定。,V,必须为,MNP,阶的矩阵。,slice(X,Y,Z,V,XI,YI,ZI):,绘制沿,XI,YI,ZI,数组定义的曲面的通过容量,V,的切片图。,slice(V,Sx,Sy,Sz),或,slice(V,XI,YI,ZI):,假设,X=1,:,N,,,Y=1,:,M,,,Z=1,:,P,。,slice(,method,):,由,method,指定使用的插值方法。其值可以为,linear,cubic,或,nearest.,默认,linear.,河南理工大学测绘学院,4.3,四维表现图,【,例,4.44】,可视化函数 ,自变量的范围分别为,x,y,z=meshgrid(-2:.2:2,-2:.25:2,-1:.16:2);,v=x.*exp(-x.2-y.2-z.2);,slice(x,y,z,v,-1.2.8 2,2,-2.2),colorbar(horiz);,view(-30,45),河南理工大学测绘学院,4.3,四维表现图,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 初中其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服