matlab绘制三维曲面
平面网格数据的生成
- meshgrid函数
>>x=2:8;
>>y=(3:7)';
>>[X,Y]=meshgrid(x,y);
>>plot(X,Y,'o');
绘制三维曲面的函数
mesh函数绘制三维网格图
- 调用格式:mesh(x,y,z,c)
其中x,y为网格坐标矩阵;z是网格点上的高度矩阵;c表示不同高度下的曲面颜色,默认正比于图形高度,c=z;
当x,y省略时,z的第二维下标当作x轴坐标,z的第一维下标当作y轴坐标; - 例:
x=1:3;
y=2:4;
[X,Y]=meshgrid(x,y);
Z=X+Y;
mesh(X,Y,Z,-Z);
surf函数绘制三维曲面图
- 调用格式:surf(x,y,z,c)
- 例:
x=1:3;
y=2:4;
[X,Y]=meshgrid(x,y);
Z=X+Y;
surf(X,Y,Z);
其他三维曲面绘图函数
- 带等高线的surfc、meshc函数
- 带底座的meshz函数
- 带光照效果的surfl函数
例:
[X,Y,Z]=sphere;
subplot(1,4,1);
surfc(X,Y,Z);
title(‘surfc’);
subplot(1,4,2);
meshc(X,Y,Z);
title(‘meshc’);
subplot(1,4,3);
surfl(X,Y,Z);
title(‘surfl’);
subplot(1,4,4);
meshz(X,Y,Z);
title(‘meshz’);`
标准三维曲面
- sphere——绘制三维球面
[x,y,z]=sphere(n);
绘制三维球面,产生三个(n+1)阶的方阵,绘制球心在原点的单位球体。 - cylinder——绘制三维柱面
[x,y,z]=cylinder(R,n);
R可以是向量,也可以是标量;R为向量时,存放柱面各个等间距高度上的半径