1、1 1数学实验Matlab 绘图(二)空间三维作图与符号作图 第六讲 2 2绘制三维曲线q 三维曲线:plot3设三维曲线的参数方程为:x=x(t),y=y(t),z=z(t),则其图形可由下面的命令绘出:例:三维螺旋线plot3 的用法与 plot 类似 t=0:pi/10:10*pi;x=2*t;y=sin(t);z=cos(t);plot3(x,y,z);plot3(x,y,z,s)3 3绘制三维曲面示例4 4绘制三维曲面q 空间曲面作图命令:mesh绘制由矩阵 X,Y,Z 所确定的曲面网格图mesh(X,Y,Z)X,Y=meshgrid(-3:1/8:3);Z=peaks(X,Y);m
2、esh(X,Y,Z);例:5 5绘制三维曲面的过程q 绘制空间曲面 z=z(x,y)的一般过程l 与绘制二维曲线类似,先对 x 的变化区域和 y 的变化区域进行分割,得到离散的点(xij,yij),这些点构成了网格矩阵,即矩阵 X 和 Y,这些离散的点称为网格点l 计算 z 在这些网格点上的函数值,即可的矩阵 Zl 调用 Matlab 的绘图命令作出曲面图形怎样得到网格矩阵 X 和 Y?利用 Matlab 的网格生成函数 meshgrid6 6网格生成函数若 x=y,则可简写为:X,Y=meshgrid(x)X,Y=meshgrid(x,y)l x,y 是分别对 x 变化区域和 y 变化区域进
3、行分割后 得到的向量l X,Y 即为我们所需要的网格矩阵q 网格生成函数 7 7绘制三维曲面 x=-8:0.5:8;y=-8:0.5:8;X,Y=meshgrid(x,y);r=sqrt(X.2+Y.2)+eps;Z=sin(r)./r;mesh(X,Y,Z)例:绘制由函数 确定的曲面其中-8=x=8,-8=y=8。8 8其它三维曲面作图命令q 绘制带等高线的空间曲面 meshc调用方式与 mesh 相同,在 mesh 基础上增加等高线meshz调用方式与 mesh 相同,在 mesh 基础上屏蔽边界面q 绘制屏蔽边界面的空间曲面 9 9二维曲线作图过程例:y=sin(x),0 x x=0:p
4、i/5:2*pi;y=sin(x);plot(x,y,.)一、画点q 点 线:先画点,后连线1010二维曲线作图过程例:y=sin(x),0 x x=0:pi/5:2*pi;y=sin(x);plot(x,y,r.-)二、连线q 点 线:先画点,后连线1111二维作图举例 x=0:pi/20:2*pi;y=sin(x);plot(x,y,.)三、加密:取更多的点1212(0 t t=0:0.5:20;x=t;y=sin(t);z=cos(t);plot3(x,y,z,.-)t=0:0.5:20;x=t;y=sin(t);z=cos(t);plot3(x,y,z,.)1414空间曲线作图举例 t
5、=0:0.1:20;x=t;y=sin(t);z=cos(t);plot3(x,y,z)t=0:0.1:20;x=t;y=sin(t);z=cos(t);plot3(x,y,z,.-)1515线:分别沿 x 方向和 y 方向 连接这些点即可得到三维曲面作图先画点,后连线,构成曲面网格图点:1616例:墨西哥帽子:墨西哥帽子(a x a,-a y x=-8:0.5:8;y=-8:0.5:8;X,Y=meshgrid(x,y);r=sqrt(X.2+Y.2)+eps;Z=sin(r)./r;mesh(X,Y,Z)1)x 与 y 可以取不同的步长2)注意这里采用的数组运算eps?最后一个命令能否改为
6、 mesh(Z)?X,Y=meshgrid(-8:0.5:8);1818例:带等高线的曲面 meshc三维曲面作图举例 X,Y=meshgrid(-8:0.5:8);r=sqrt(X.2+Y.2)+eps;Z=sin(r)./r;meshc(X,Y,Z)1919例:带屏蔽面的曲面 meshz三维曲面作图举例 X,Y=meshgrid(-8:0.5:8);r=sqrt(X.2+Y.2)+eps;Z=sin(r)./r;meshz(X,Y,Z)2020Mesh 绘图小结u 显式方程:z=z(x,y),axb,cyd x=a:hx:b;y=c:hy:d;X,Y=meshgrid(x,y);Z=z(X
7、,Y);mesh(X,Y,Z)u 参数方程:x=x(u,v),y=y(u,v),x=z(u,v)u=a:hu:b;y=c:hv:d;U,V=meshgrid(u,v);X=x(U,V);Y=y(U,V);Z=z(U,V);mesh(X,Y,Z)aub,cvd2121其它三维曲面作图命令q 空间曲面其它作图函数 u sphere(n)专用于绘制单位球面mesh 绘制网格图,surf 绘制表面着色的曲面图u surf(X,Y,Z)绘制由矩阵 X,Y,Z 所确定的曲面图,参数含义同 meshsphere 只能画单位球面!自己动手绘制球面 x2+y2+z2=16X,Y,Z=sphere(n)2222s
8、urf 作图举例 X,Y=meshgrid(-8:0.5:8);r=sqrt(X.2+Y.2)+eps;Z=sin(r)./r;surf(X,Y,Z)2323mesh 与 surf 的比较surf(X,Y,Z)mesh(X,Y,Z)2424如果没有给出 n 的值,则系统默认为 n=20sphere 作图 sphere;sphere(60);axis equal;2525l 其它调用方式:axis auto 自动模式,使得图形的坐标满足图中的一切元素axis equal 各坐标轴采用等长刻度axis square 使绘图区域为正方形axis on/off恢复/取消对坐标轴的一切设置axis ma
9、nual以当前的坐标限制图形的绘制(多图时)更多参见 axis 的联机帮助坐标轴控制axis(xmin,xmax,ymin,ymax,zmin,zmax)作用:指定坐标轴的显示范围q 坐标轴控制命令:axis2626u r,g,b 都是 0 1 之间的一个数u s 为字符串,表示所采用的色系,常用的值有颜色映象颜色映象 相应的颜色系相应的颜色系 颜色映象颜色映象 相应的颜色系相应的颜色系autumn 红黄色系红黄色系hsv色调饱和色系色调饱和色系gray线性灰色系线性灰色系hot黑红黄白色系黑红黄白色系cool青和洋红色系青和洋红色系 pink柔和色系柔和色系图像的着色方案colormap(r
10、 g b)或 colormap(s)q colormap:设置绘图的着色方案2727Matlab 符号作图2828二维曲线 ezplotq 二维曲线绘图命名:ezplotezplot(f(x),a,b)绘制 y=f(x)在区域 a x b 上的图形ezplot(f(x,y),a,b,c,d)绘制 f(x,y)=0 在区域 a x b,c y d 上的图形ezplot(x(t),y(t),a,b)绘制 x=x(t),y=y(t)在区域 a t b 上的图形2929二维曲线 ezplotq 二维曲线绘图命名:ezplotezplot(f(x)绘制 y=f(x)在区域-2 x 2 上的图形ezplo
11、t(f(x,y)绘制 f(x,y)=0 在区域-2 x,y 2 上的图形ezplot(x(t),y(t)绘制 x=x(t),y=y(t)在区域 0 t ezplot(sin(x);ezplot(sin(x),.-pi,pi);3131Matlab 符号作图q 空间曲线绘图:ezplot3ezplot3(x(t),y(t),z(t),a,b)绘制空间曲线:x=x(t),y=y(t),z=z(t),a t bezplot3(x(t),y(t),z(t)绘制空间曲线:x=x(t),y=y(t),z=z(t),0 t 2缺省的绘图区间为 0,2符号作图时要注意 使用 单引号!ezplot3(2*t,sin(t),cos(t),0,20)例:3232Matlab 符号作图q 空间曲面绘图:ezmesh、ezsurfu ezmesh(z(x,y),a,b,c,d)u ezmesh(z(x,y),a,b)u ezmesh(z(x,y)u ezmesh(x(s,t),y(s,t),z(s,t),a,b,c,d)u ezmesh(x(s,t),y(s,t),z(s,t),a,b)u ezmesh(x(s,t),y(s,t),z(s,t)ezsurf 的用法与 ezmesh 相同