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

两者的区别在于颜色%

%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会使曲面颜色变化更自然,不再是突变

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

  • 5
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

matlab练习生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值