1、数学实验Matlab 绘图(二)空间三维作图与符号作图空间三维作图与符号作图 第六讲第六讲 1PPT课件绘制三维曲线绘制三维曲线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)2PPT课件绘制三维曲面示例绘制三维曲面示例3P
2、PT课件绘制三维曲面绘制三维曲面q 空间曲面作图命令:空间曲面作图命令:mesh绘制由矩阵绘制由矩阵 X, Y, Z 所确定的曲面所确定的曲面网格图网格图(,)ijijijijP xyzmesh(X,Y,Z) X,Y=meshgrid(-3:1/8:3); Z=peaks(X,Y); mesh(X,Y,Z);例:例:111212122212X,nnmmmnxxxxxxxxx ,111212122212Ynnmmmnyyyyyyyyy nnmmmnzzzzzzzzz 111212122212Z4PPT课件绘制三维曲面的过程绘制三维曲面的过程q 绘制空间曲面绘制空间曲面 z = z(x,y) 的一
3、般过程的一般过程l 与绘制二维曲线类似,先对与绘制二维曲线类似,先对 x 的变化区域和的变化区域和 y 的变化区域的变化区域进行分割,得到离散的点进行分割,得到离散的点 (xij, yij),这些点构成了网格矩阵,这些点构成了网格矩阵,即矩阵即矩阵 X 和和 Y,这些离散的点称为网格点,这些离散的点称为网格点l 计算计算 z 在这些网格点上的函数值,即可的矩阵在这些网格点上的函数值,即可的矩阵 Zl 调用调用 Matlab 的绘图命令作出曲面图形的绘图命令作出曲面图形怎样得到网格矩阵怎样得到网格矩阵 X 和和 Y ? 利用利用 Matlab 的网格生成函数的网格生成函数 meshgrid5PP
4、T课件网格生成函数网格生成函数若若 x = y, 则可简写为:则可简写为:X,Y= meshgrid(x)X,Y = meshgrid(x,y)l x,y 是分别对是分别对 x 变化区域变化区域和和 y 变化区域变化区域进行分割后进行分割后 得到的向量得到的向量l X, Y 即为我们所需要的网格矩阵即为我们所需要的网格矩阵q 网格生成函数网格生成函数 6PPT课件绘制三维曲面绘制三维曲面 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; mes
5、h(X,Y,Z)例:例:绘制由函数绘制由函数 确定的曲面确定的曲面 2222sinxyzxy 其中其中 -8 = x = 8, -8 = y = 8。7PPT课件其它三维曲面作图命令其它三维曲面作图命令q 绘制带绘制带等高线等高线的空间曲面的空间曲面 meshc调用方式与调用方式与 mesh 相同,在相同,在 mesh 基础上增加等高线基础上增加等高线meshz调用方式与调用方式与 mesh 相同,在相同,在 mesh 基础上屏蔽边界面基础上屏蔽边界面q 绘制绘制屏蔽边界面屏蔽边界面的空间曲面的空间曲面 8PPT课件二维曲线作图过程二维曲线作图过程例:例:y = sin(x), 0 x x=0
6、:pi/5:2*pi; y=sin(x); plot(x,y,.)一、画点一、画点q 点点 线:线:先画点,后连线先画点,后连线9PPT课件二维曲线作图过程二维曲线作图过程例:例:y = sin(x), 0 x x=0:pi/5:2*pi; y=sin(x); plot(x,y,r.-)二、连线二、连线q 点点 线:线:先画点,后连线先画点,后连线10PPT课件二维作图举例二维作图举例 x=0:pi/20:2*pi; y=sin(x); plot(x,y,.)三、加密:三、加密:取更多的点取更多的点11PPT课件( 0 t t=0:0.5:20; x=t; y=sin(t); z=cos(t)
7、; plot3(x,y,z,.-) t=0:0.5:20; x=t; y=sin(t); z=cos(t); plot3(x,y,z,.)13PPT课件空间曲线作图举例空间曲线作图举例 t=0:0.1:20; x=t; y=sin(t); z z=cos(t); plot3(x,y,z) t=0:0.1:20; x=t; y=sin(t); z z=cos(t); plot3(x,y,z,.-)14PPT课件nnmmmnxxxxxxxxx 111212122212Xnnmmmnyyyyyyyyy 111212122212Ynnmmmnzzzzzzzzz 111212122212Z线线: 分别沿
8、分别沿 x 方向和方向和 y 方向方向 连接这些点即可得到连接这些点即可得到三维曲面作图三维曲面作图先画点,后连线,构成曲面网格图先画点,后连线,构成曲面网格图点点: :),(ijijijzyxnjmi, 1, 115PPT课件例:例:墨西哥帽子:墨西哥帽子:墨西哥帽子墨西哥帽子( 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?最
9、后一个命令能否改为最后一个命令能否改为 mesh(Z)?X,Y=meshgrid(-8:0.5:8);17PPT课件例:例:带等高线的曲面带等高线的曲面 meshc三维曲面作图三维曲面作图举例举例 X,Y=meshgrid(-8:0.5:8); r=sqrt(X.2+Y.2)+eps; Z=sin(r)./r; meshc(X,Y,Z)18PPT课件例:例:带屏蔽面的曲面带屏蔽面的曲面 meshz三维曲面作图三维曲面作图举例举例 X,Y=meshgrid(-8:0.5:8); r=sqrt(X.2+Y.2)+eps; Z=sin(r)./r; meshz(X,Y,Z)19PPT课件Mesh 绘
10、图小结绘图小结u 显式方程显式方程:z=z(x,y), a x b, c y d x=a:hx:b; y=c:hy:d; X,Y=meshgrid(x,y); Z=z(X,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)a u b, c v d20PPT课件其它三维曲面作图命令其它三维曲面作图命令q 空间曲面其它作图函数空间曲面其它作图函数 u sphere(n) 专用于绘制单位
11、球面专用于绘制单位球面mesh 绘制绘制网格图网格图,surf 绘制绘制表面表面着色的着色的曲面图曲面图u surf(X,Y,Z) 绘制由矩阵绘制由矩阵 X,Y,Z 所确定的曲面图,参数所确定的曲面图,参数含义同含义同 meshsphere 只能画单位球面!只能画单位球面!自己动手绘制球面绘制球面 x2 + y2 + z2 = 16X,Y,Z=sphere(n)21PPT课件surf 作图举例作图举例 X,Y=meshgrid(-8:0.5:8); r=sqrt(X.2+Y.2)+eps; Z=sin(r)./r; surf(X,Y,Z)22PPT课件mesh 与与 surf 的比较的比较su
12、rf(X,Y,Z)mesh(X,Y,Z)23PPT课件如果没有给出如果没有给出 n 的值,的值,则系统默认为则系统默认为 n=20sphere 作图作图 sphere; sphere(60); axis equal;24PPT课件l 其它调用方式:axis auto 自动模式,使得图形的坐标满足图中的一切元素自动模式,使得图形的坐标满足图中的一切元素axis equal 各坐标轴采用等长刻度各坐标轴采用等长刻度axis square 使绘图区域为正方形使绘图区域为正方形axis on/off恢复恢复/取消对坐标轴的一切设置取消对坐标轴的一切设置axis manual以当前的坐标限制图形的绘制(
13、多图时)以当前的坐标限制图形的绘制(多图时) 更多参见更多参见 axis 的联机帮助的联机帮助坐标轴控制坐标轴控制axis(xmin, xmax, ymin, ymax, zmin, zmax)作用:指定坐标轴的显示范围作用:指定坐标轴的显示范围q 坐标轴控制命令坐标轴控制命令: axis25PPT课件u r, g, b 都是都是 0 1 之间的一个数之间的一个数u s 为字符串,表示所采用的色系,常用的值有为字符串,表示所采用的色系,常用的值有颜色映象颜色映象 相应的颜色系相应的颜色系 颜色映象颜色映象 相应的颜色系相应的颜色系autumn 红黄色系红黄色系hsv色调饱和色系色调饱和色系gr
14、ay线性灰色系线性灰色系hot黑红黄白色系黑红黄白色系cool青和洋红色系青和洋红色系 pink柔和色系柔和色系图像的着色方案图像的着色方案colormap(r g b) 或或 colormap(s)q colormap: 设置绘图的着色方案设置绘图的着色方案26PPT课件Matlab 符号作图符号作图27PPT课件二维曲线二维曲线 ezplotq 二维曲线绘图命名:二维曲线绘图命名: ezplotezplot(f(x),a,b)绘制绘制 y = f (x) 在区域在区域 a x b 上的图形上的图形ezplot(f(x,y),a,b,c,d)绘制绘制 f (x, y) = 0 在区域在区域
15、a x b, c y d 上的图形上的图形ezplot(x(t),y(t),a,b)绘制绘制 x = x(t), y = y(t) 在区域在区域 a t b 上的图形上的图形28PPT课件二维曲线二维曲线 ezplotq 二维曲线绘图命名:二维曲线绘图命名: ezplotezplot(f(x)绘制绘制 y = f (x) 在区域在区域 -2 x 2 上的图形上的图形ezplot(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(si
16、n(x); ezplot(sin(x), . -pi,pi );30PPT课件Matlab 符号作图符号作图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
17、,sin(t),cos(t),0,20)例:例:31PPT课件Matlab 符号作图符号作图q 空间曲面绘图:空间曲面绘图: ezmesh、ezsurfu ezmesh(z(x,y),a,b,c,d)( , ),zz x y axb cydu ezmesh(z(x,y),a,b)( , ),zz x y ax ybu ezmesh(z(x,y)( , ), 2,2zz x yx y u ezmesh(x(s,t),y(s,t),z(s,t),a,b,c,d)( , ),( , ),( , ),xx s tyy s tzz s tasb ctdu 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 相同32PPT课件