MATLAB三维曲面作图(一)mesh()、surf()函数 |
您所在的位置:网站首页 › matlab加网格线命令 › 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会使曲面颜色变化更自然,不再是突变 来源《高等光学仿真——光波导、激光》 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |