编辑: gracecats | 2019-07-17 |
x=sin(t);
y=cos(t);
z=2*t;
plot3(x,y,z);
plot3(x,y,z) 三维曲面示例 三维曲面 绘制曲面的网格图 绘制由矩阵 X,Y,Z 所确定的曲面的网格图 mesh(X,Y,Z) [X,Y]=meshgrid(-3:1/8:3);
Z=peaks(X,Y);
mesh(X,Y,Z);
例: 三维曲面绘制过程 绘制空间曲面 z = z(x,y) 网格图的步骤: (1) 对x的取值区域和 y 的取值区域进行分割, 得到离散的点 (xij, yij),这些离散的点称为网格点(2) 这些网格点构成了网格矩阵,即矩阵 X 和Y(3) 计算 z 在这些网格点上的函数值,即可得矩阵 Z(4) 调用 Matlab 的绘图命令 mesh 绘出曲面图形 怎样得到网格矩阵 X 和Y?―― 利用 Matlab 的网格生成函数: meshgrid 网格生成函数 若y=x, 则可简写为:[X, Y]=meshgrid(x) [X,Y]=meshgrid(x,y) x,y 是分别对 x 取值区域和 y 取值区域进行分割后 得到的向量 X, Y 即为我们所需要的网格矩阵 网格生成函数 例:绘制墨西哥帽子 墨西哥帽子 a =
8 时的曲面图形 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);
x 方向与 y 方向可以取不同的步长 注意要使用数组运算 +eps? meshc 和meshz 绘制带等高线的空间曲面:meshc 使用方式与 mesh 相同,在mesh 基础上增加等高线 其它网格曲面绘制函数:meshc、meshz 绘制带屏蔽面的空间曲面:meshz 使用方式与 mesh 相同,在mesh 基础上屏蔽边界面 meshc meshz Mesh 绘图 显式方程绘图: x=a:h1:b;
y=c:h2:d;
% 区域划分[X,Y]=meshgrid(x,y);
% 生成网格Z=z(X,Y)计算网格上的函数值mesh(X,Y,Z)调用绘图命令 参数方程绘图: u=a:h1:b;
v=c:h2:d;
区域划分[U,V]=meshgrid(u,v)生成网格X=x(U,V);
Y=y(U,V);
Z=z(U,V);
% 计算函数值mesh(X,Y,Z)调用绘图命令 Mesh 绘图举例 例:绘制马鞍面 x=-2:0.1:2;
y=-3:0.1:3;
[X,Y]=meshgrid(x,y);
Z=X.^2/4-Y.^2/9;
mesh(X,Y,Z);
显式方程绘图 Mesh 绘图举例 例:绘制椭圆抛物面 t=0:pi/20:2*pi;
r=0:0.1:5;
[T,R]=meshgrid(t,r);
X=3*R.*cos(T);
Y=4*R.*sin(T);
Z=R.^2;
mesh(X,Y,Z);
参数方程绘图 曲面作图其它命令 空间曲面其它作图命令 注:mesh 绘制网格图,surf 绘制着色表面图 绘制带颜色的表面图 (surface),参数含义同 mesh 注:sphere 只能画单位球面! surf(X,Y,Z) sphere(n) 绘制单位球面,n 代表网格的多少 surf 作图举例 [X,Y]=meshgrid(-8:0.5:8);
r=sqrt(X.^2+Y.^2)+eps;
Z=sin(r)./r;
surf(X,Y,Z);
surf mesh 如果没有给出 n 的值,则系统默认为 n=20 sphere 作图 sphere;
>
>
sphere(60);
>
>
axis equal;
其它调用方式: 坐标轴控制 axis([xmin,xmax, ymin,ymax, zmin,zmax]) 作用:指定坐标轴的显示范围 坐标轴控制命令 各坐标轴采用等长刻度 axis equal 使绘图区域为正方形 axis square 自动,使得图形的坐标满足图中的一切元素 axis auto 更多用法参见联机帮助:help axis ... ... 以当前的坐标限制图形的绘制(多图时) axis manual axis on/off % 显示/不显示坐标轴 s 为字符串,表示所采用的色系,常用的值有 线性灰色系 gray 青和洋红色系 cool 更多参见联机帮助: help colormap ... ... 柔和色系 pink 红黄色系 autumn 相应的颜色系 颜色映象 图像的着色方案 colormap(s) 图形的着色方案 绘图小结 平面曲线绘图: X=a:h:b;
(1) 绘图区域划分 y=f(x);
% (2) 计算分割点上的函数值 plot(x,y);
(3) 调用 Matlab 绘图命令 绘图小结 三维曲面绘图: x=a:h1:b;
y=c:h2:d;
(1) 绘图区域划分 [X,Y]=meshgrid(x,y);