Matlab绘图94854.pptVIP

  • 4
  • 0
  • 约1.04万字
  • 约 48页
  • 2019-04-05 发布于湖北
  • 举报
2. 三维图形 * 2.1 三维曲线绘图 plot3函数用于绘制三维曲线图 plot3(x,y,z) plot3(x,y,z,’String’) plot3(x1,y1,z1,’String1’, x2,y2,z2,’String2’,…) 若x,y,z是向量时,则以x,y,z为数据绘制空间曲线 若x,y,z是矩阵时,则以每个矩阵的对应列绘制出m条空间曲线 * 例 绘制三维曲线图 t=0:pi/10:20*pi; x=t.*sin(t); y=t.*cos(t); z=t; plot3(x,y,z); grid on; * 例 在同一坐标系下绘制如下两条曲线 t=0:pi/10:10*pi; x=t.*sin(t); y=t.*cos(t); z=t; plot3(x,y,z,x,y,-z); grid on; * 2.2 三维曲面绘图 二元函数z=f(x, y)的图形是三维空间曲面 在MATLAB中总是假设函数z=f(x, y)定义在矩形区域D=[xmin, xmax]×[ymin ymax]上的 为了绘制三维曲面,MATLAB把[xmin, xmax]分成m份,[ymin ymax]分成n份,此时区域D就被分成m×n个小矩形块 每个小矩形块有4个顶点或称为格点(xi,yi,f(xi,yi)),连接4个顶点得到一个空间中的四边形片 所有这些四边形片就构成函数的空间网格曲面 * (1) meshgrid命令 meshgrid用来生成x-y平面上的小矩形顶点坐标值的矩阵,也称为格点矩阵. meshgrid也适用于三元函数u=f(x,y,z) [X,Y]=meshgrid(x,y): 绘制二维图形时生成小矩形的格点 [X,Y]=meshgrid(x): 等价于[X,Y]=meshgrid(x,x) [X,Y,Z]=meshgrid(x,y,z): 绘制三维图形时生成空间曲面的格点 [X,Y]=meshgrid(x): 等价于[X,Y,Z]=meshgrid(x,x,x) 注:x是区间[xmin xmax]上分点组成的向量,y是区间[ymin ymax]上分点组成的向量,输出变量X和Y都是m×n矩阵,而矩阵X的行向量都是向量x,矩阵Y的列向量都是向量y * 例 已知向量x=[1 2 3], y=[4 7 9 0],生成他们对应的格点矩阵 x=[1 2 3]; y=[4 7 9 0]; [X Y]=meshgrid(x,y) 利用函数meshgrid生成格点矩阵,然后求出各格点对应的函数值,就可以利用三维网格命令mesh与三维表面命令surf画出空间曲面 * (2) 三维网格命令mesh mesh用来绘制三维网格图 mesh(X,Y,Z): 绘制一个网格图,图的颜色由Z确定,即图像的颜色与高度成正比 X,Y,Z可以是同维的矩阵,也可以是向量. 若X和Y是向量,则length(X)=n且length(Y)=m,其中[m, n]=size(Z). 绘制的图形中,网格线上的点由坐标(X(j),Y(i),Z(i,j))决定. 向量X对应于矩阵Z的列,向量Y对应于矩阵Z的行 mesh(X,Y,Z,C): C为矩阵,绘制出的图像的颜色由C指定 meshc(X,Y,Z): 除了生成网格曲面外,还在x-y平面上生成曲面的等高线图形 meshz(X,Y,Z):除了生成与mesh相同的网格曲面外,还会在曲面周围绘出类似“幕布”的线条 * 例 画出函数z=x2+y2在-3≤x, y≤3上的图形,以及函数z=x2-2y2在-10≤x, y≤10上的图形 %抛物面 z=x^2+y^2 t1=-3:0.1:3; [x1,y1]=meshgrid(t1); z1=x1.^2+y1.^2; subplot(1,2,1); mesh(x1,y1,z1),title(抛物面); %马鞍面 z=x^2-2y^2 t2=-10:0.1:10; [x2,y2]=meshgrid(t2); z2=x2.^2-2*y2.^2; subplot(1,2,2); mesh(x2,y2,z2),title(马鞍面); * 例 分别用命令mesh、meshc、meshz画出以下函数在-8≤x, y≤8上的图形 t=-8:0.1:8; [x,y]=meshgrid(t); r=sqrt(x.^2+y.^2)+eps; %由于在邻近原点处,r的某些元素可能会很小,因此加入eps可以避免出现零为除数 z=sin(r)./r; subplot(1,3,1); meshc(x,y,z) subplot

文档评论(0)

1亿VIP精品文档

相关文档