MATLAB学习与使用:三维图形绘制plot3/mesh/surf

介绍3类(plot3/mesh/surf)7种三维图像绘制的方法。
plot3 三维曲线图;
mesh 三维网格图;
meshc 除了生成网格图外,还在xy平面生成曲面的等高线;
meshz 除了生成网格图外,还在曲线下面加上个矩形垂帘;
surf   三维着色曲面图;
surfc  同时画出三维着色曲面图与等高线;
surfl   带光照的三维着色曲面图。

MATLAB学习与使用:三维图形绘制plot3/mesh/surf

操作方法

(01)第一,plot3三维曲线图。启动MATLAB,新建脚本(.m文件),在脚本编辑区输入以下代码,然后保存运行后,看到以下三维曲线图。close all;clear all;clcz=linspace(0,10,101);x=sin(z);y=cos(z);plot3(x,y,z,'g','LineWidth',2)hold onplot3(x,y,z,'p','MarkerSize',10)其中,linspace(a1,a2,N) 是生成间距为(a2-a1)/(N-1)、个数为N的数组的命令。

MATLAB学习与使用:三维图形绘制plot3/mesh/surf 第2张

(02)第二,mesh三维网格图。在脚本编辑区紧接着输入以下代码,保存运行后,看到以下三维网格图。[a,b,c]=peaks(50);figure(2)mesh(a,b,c)axis tight其中,peaks(N)是生成一个凹凸有致的曲面,包含三个局部极大点及三个局部极小点的函数,其方程式略。

MATLAB学习与使用:三维图形绘制plot3/mesh/surf 第3张

(03)第三,meshc除了生成网格图外,还在xy平面生成曲面的等高线。将第二步中的mesh(a,b,c)改为meshc(a,b,c),然后保存运行后,看到以下三维网格图+等高线的效果。

MATLAB学习与使用:三维图形绘制plot3/mesh/surf 第4张

(04)第四,meshz除了生成网格图外,还在曲线下面加上个矩形垂帘。将第三步中的meshc(a,b,c)改为meshz(a,b,c),然后保存运行后,看到以下三维网格图+垂帘的效果。

MATLAB学习与使用:三维图形绘制plot3/mesh/surf 第5张

(05)第五,surf三维着色曲面图。将第四步中的meshz(a,b,c)改为surf(a,b,c),然后保存运行后,看到以下三维着色曲面图。

MATLAB学习与使用:三维图形绘制plot3/mesh/surf 第6张

(06)第六,surfc同时画出三维着色曲面图与等高线。将第五步的surf(a,b,c)改为surfc(a,b,c),然后保存运行后,看到以下三维着色曲面图+等高线的效果。

MATLAB学习与使用:三维图形绘制plot3/mesh/surf 第7张

(07)第七,surfl带光照的三维着色曲面图图。将第六步的surfc(a,b,c)改为surfl(a,b,c),然后保存运行后,看到以下带光照的三维着色曲面图。

MATLAB学习与使用:三维图形绘制plot3/mesh/surf 第8张

(08)第八,添加shading interp去掉网格曲线,添加xlabel等坐标说明,添加title标题说明。如下输入以下代码,保存运行后,得到如下效果。[a,b,c]=peaks(50);figure(2)surfl(a,b,c)shading interpxlabel('X');ylabel('Y');zlabel('Z')title('peaks+surfl')axis tight

MATLAB学习与使用:三维图形绘制plot3/mesh/surf 第9张

特别提示

shading interp去掉网格线在使用mesh命令时不起作用。

介绍了plot3;mesh, meshc, meshz;surf, surfc, surfl 共3类7种绘制三维图的方式。