《选讲MATLAB三维绘图功能.pptx》由会员分享,可在线阅读,更多相关《选讲MATLAB三维绘图功能.pptx(56页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、三维绘图三维绘图的主要功能:三维绘图的主要功能:绘制三维线图绘制三维线图 绘制等高线图绘制等高线图 绘制伪彩色图绘制伪彩色图 绘制三维网线图绘制三维网线图 绘制三维曲面图、柱面图和球面图绘制三维曲面图、柱面图和球面图 绘制三维多面体并填充颜色绘制三维多面体并填充颜色第1页/共56页(一)三维曲线图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、第2页/共56页二维图形的所有基本特性对三维图形全都适用。定义三维坐标轴大小 axis(xmin xmax ymin ymax zmin zmax)grid on(off)绘制三维网格 text(x,y,z,string)三维图形标注 子图和多窗口也可以用到三维图形中第3页/共56页例:绘制三维线图t=0:pi/50:10*pi;plot3(t,sin(t),cos(t),r:)第4页/共56页例:绘制螺旋线 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轴),ylabe
3、l(y轴),zlabel(z轴)grid on第5页/共56页(二)三维饼图pie3(4 3 6 8 9)第6页/共56页(三)三维多边形fill3=fill 三维多边形的绘制和填色与二维多边形完全相同调用格式:fill3(x,y,z,s)与二维相同第7页/共56页例:用随机顶点坐标画出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)第8页/共56页(四)三维网格图 所谓网格图,是指把相邻的数据点连接起来形成的网状曲面。利用在X-Y平面的矩形
4、网格点上的Z轴坐标值,Matlab定义了一个网格曲面。三维网格图的形成原理为:在X-Y平面上指定一个长方形区域,采用与坐标轴平行的直线将其分格;计算矩形网格点上的函数值,即Z轴的值,得到三维空间的数据点;将这些数据点分别用处于X-Z或者平行面内的曲线和处于Y-Z或者平行面的曲面连接起来,即形成网格图。网格图对于显示大型的数值矩阵很有用处。第9页/共56页1、mesh 三维网线绘图函数 调用格式:mesh(z)z为nm的矩阵,x与y坐标为元素的下标 mesh(x,y,z)x,y,z分别为三维空间的坐标位置第10页/共56页例,矩阵的三维网线图z=rand(6);z=round(z);mesh(z
5、);第11页/共56页例:8阶hadamard矩阵的网线图h2=1 1;1-1;h4=h2 h2;h2-h2h8=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 -1mesh(h8)第12页/共56页第13页/共56页2、meshgrid 网线坐标值计算函数 meshgrid用于从数组a和b产生网格。生成的网格矩阵A
6、和B大小是相同的。A,B=meshgrid(a,b)生成size(b)Xsize(a)大小的矩阵A和B。这些矩阵表示整个矩形区域内的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)第14页/共56页 z=f(x,y)根据x,y坐标找出z的高度例:绘制z=x2+y2的三维网线图形 x=-5:5;y=x;X,Y=mesh
7、grid(x,y);Z=X.2+Y.2;mesh(X,Y,Z)第15页/共56页第16页/共56页(五)三维曲面图surf 三维曲面绘图函数,与网格图看起来一样与三维网线图的区别:网线图:线条有颜色,内部是黑色的(无颜色)曲面图:线条是黑色的,内部有颜色(把线条之间的空挡填充颜色,沿z轴按每一网格变化)第17页/共56页调用格式:surf(x,y,z)绘制三维曲面图,x,y,z为图形坐标向量 peaks 函数 为了方便测试立体绘图,MATLAB提供了一个peaks函数,可产生一个凹凸有致的曲面,包含了三个局部极大点及三个局部极小点,其方程式为:z=3*(1-x).2.*exp(-(x.2)-(
8、y+1).2).-10*(x/5-x.3-y.5).*exp(-x.2-y.2).-1/3*exp(-(x+1).2-y.2)x,y,z=peaks;mesh(x,y,z)surf(x,y,z)第18页/共56页第19页/共56页 surfc(X,Y,Z)带等高线的曲面图 X,Y,Z=peaks(30);surfc(X,Y,Z)第20页/共56页 surfl(X,Y,Z)被光照射带阴影的曲面图X,Y,Z=peaks(30);surfl(X,Y,Z)第21页/共56页 cylinde(r,n)三维柱面绘图函数 r 为半径;n为柱面圆周等分数例:绘制三维陀螺锥面t1=0:0.1:0.9;t2=1:
9、0.1:2;r=t1-t2+2;x,y,z=cylinder(r,30);surf(x,y,z);grid第22页/共56页sphere 三维球面绘图函数 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)函数来绘制球体。例:绘制两个
10、同心球面 figure(1)m,n,p=sphere(50);t=abs(p);surf(m,n,p,t);hold on;mesh(2*m,2*n,2*p),colormap(hot);hold off;hidden off axis equal第23页/共56页第24页/共56页(六)图形修饰方法图形颜色的修饰matlab 有极好的颜色表现功能,其颜色数据又构成了一维新的数据集合,也可称为四维图形colormap(MAP)色图设定函数,MAP为m3维色图矩阵图形颜色可根据需要任意生成,也可用matlab配备的色图函数shading设置颜色色调。该命令控制表面和块等图形对象颜色的渲染。第25
11、页/共56页shading faceted 带重叠的黑色网格线的平面色调模式,这也是默认的色调模式。第26页/共56页shading flat 去掉黑色线条,根据小方块的值确定颜色第27页/共56页shading interp 颜色整体改变,根据小方块四角的值差补过度点的值确定颜色第28页/共56页peaks(30);shading interp;colormap(hot)第29页/共56页X,Y,Z=peaks(30);surfl(X,Y,Z)shading interp;colormap(cool);axis off第30页/共56页小结:色彩与效果mesh,surf,surfc,surf
12、l比较: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);mesh(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 face
13、ted%有网格涂色 格子图,有格线;subplot(3,2,6);surfl(p)shading flat%有网格涂色 格子图,无格线;第31页/共56页第32页/共56页(七)图形效果修饰透视与消隐 用于网线图裁剪修饰 用于网线图、曲面图视角修饰 观察不同角度的三维视图其它修饰:a.水线修饰 b.等高线修饰第33页/共56页透视与消隐p=peaks(30);mesh(p);hidden on第34页/共56页p=peaks(30);mesh(p);hidden off第35页/共56页裁减修饰p=peaks;p(30:40,20:30)=NaN*p(30:40,20:30);surf(p)第
14、36页/共56页p=peaks;p(30:40,20:30)=nan*p(30:40,20:30);mesh(peaks,p)第37页/共56页例:z=x2+y2在-10 10区域的图形但是要挖掉x x,y=meshgrid(-10:0.1:10);z=x.2+y.2;subplot(121)mesh(x,y,z)sel=xhot(8)ans=0.3333 0 0 0.6667 0 0 1.0000 0 0 1.0000 0.3333 0 1.0000 0.6667 0 1.0000 1.0000 0 1.0000 1.0000 0.5000 1.0000 1.0000 1.0000rgbpl
15、ot函数 rgbplot(hot)第50页/共56页pcolor函数 函数pcolor用于绘制伪彩色图。所谓伪彩色图是指绘图所用的色彩用于表示数据的大小,而不是自然的色彩。调用格式为 pcolor(c)该函数的作用是将矩阵c作为颜色矩阵,利用着色原理在平面网格点(I,j)的右上角小区域内用c(I,j)对应的色谱矩阵的颜色着色。绘制后的伪彩色图还可以用shading函数调整其颜色的平滑度。例如:pcolor(cool(20)第51页/共56页colorbar函数 函数colorbar在当前的图形窗口中增加水平或者垂直的颜色标尺以显示当前坐标轴的颜色映像。调用格式:colorbarcolorbar
16、(horiz)colorbar(vert)第52页/共56页(3)、颜色映像的建立和修改 brighten 通过调整一个给定的颜色映像来增加或者减少暗色的强度。caxis(cmin,cmax)用于设置伪彩色的缩放比例。其中,“cmin”和“cmax”分别表示当前颜色映像中第一个颜色和最后一个颜色对应的数据大小。X,Y=meshgrid(-8:0.5:8);R=sqrt(X.2+Y.2)+eps;Z=sin(R)./R;mesh(X,Y,Z)caxis(-0.2,0.5)colorbar(vert)caxis(-0.2,2)colorbar(vert)第53页/共56页第54页/共56页第55页/共56页感谢您的观看!第56页/共56页