MATLAB三维曲面作图(一)mesh()、surf()函数

您所在的位置:网站首页 matlab加网格线命令 MATLAB三维曲面作图(一)mesh()、surf()函数

MATLAB三维曲面作图(一)mesh()、surf()函数

2024-06-03 12:18| 来源: 网络整理| 查看: 265

两者的区别在于颜色%

%mesh(X,Y,Z) %surf(X,Y,Z)

mesh()创建一个网格图,该网格图为三维曲面,有实色边颜色,无面颜色。

surf()绘制的曲面被分成一块一块的,每一块的颜色依靠对应的z数值决定。是一个具有实色边和实色面的三维曲面。

用一段代码绘制一个三维曲面图:

close all [X,Y] = meshgrid(-8:0.5:8); R = sqrt(X.^2+Y.^2)+eps; Z = sin(R)./R; mesh(X,Y,Z,'EdgeColor','black')

结果如下:

可以看出,我们图中每一块的颜色都是白色的,边缘由于我们的设置变成了黑色

这和绘图函数使用的颜色映射表有关(colormap)

关于颜色映射表在本专栏二维绘图有讲解。

这里如果我们不设置边缘为黑色:

mesh(X,Y,Z)

结果:

 可以看出图形边缘自然变成彩色,根据z值的不同变成不同的颜色。

如果使用surf()函数绘图:

surf(X,Y,Z) colormap hsv colorbar

结果:

使用黑色的边缘勾勒,并在每一块填充特定的颜色。

我们设置了colormap的格式,并向图形中添加了color bar来表示具体的数值,让图形更能说明问题。

还可以用以下语句对图形进行一定的修饰

% shading faceted % shading flat % shading interp

分别绘制三幅图

figure subplot(2,2,1) surf(X,Y,Z) title('init') subplot(2,2,2) surf(X,Y,Z) shading faceted title('shading faceted') subplot(2,2,3) surf(X,Y,Z) shading flat title('shading flat') subplot(2,2,4) surf(X,Y,Z) shading interp title('shading interp')

结果:

 从对比中可以明显看出:

shading faceted就是缺省的绘制方式,也就是默认的网格设置

shading flat会使曲面看上去更平滑,去除黑色的网格线

shading interp会使曲面颜色变化更自然,不再是突变

来源《高等光学仿真——光波导、激光》



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3