matlab画三维图

图标

豆瓜

豆瓜网

豆瓜网专栏

首发
豆瓜 图标 2020-07-24 08:51:35

当我们学习surface命令时,已经看到了三维作图的一些端倪。在matlab中我么可以调用mesh(x,y,z)函数来产生三维图像。

首先,我们用z=cos(x)sin(y)在-2pi ≤x,y≤ 2pi内的图像来看看:

[x,y] = meshgrid(-2*pi:0.1:2*pi);
z = cos(x).*sin(y);
mesh(x,y,z),xlabel('x'),ylabel('y'),zlabel('z')

显示图像如下:

 

同样用mesh命令产生z = ye-(x2+y2)的三维图像:

[x,y] = meshgrid(-2:0.1:2);
z = y.*exp(-x.^2-y.^2);
mesh(x,y,z),xlabel('x'),ylabel('y'),zlabel('z')

 

 下面绘制表面带有渐变颜色的图像,可以通过 surf 和 surfc 命令实现,只要简单更改上面例子中的命令为:

surf(x,y,z),xlabel('x'),ylabel('y'),zlabel('z')

则图像如下所示,图像表面的颜色与高度是相称的:

若使用surfc则会在图像中留下映像:

surfc(x,y,z),xlabel('x'),ylabel('y'),zlabel('z')

还可以调用surfl(命令中的'l'表示这是一个光照表面 lighted surface)命令显示三维光照物体的表面,可以使用这个命令产生没有线条的三维图像,图像还可以是彩色的或灰度的。例如仍然产生函数z = ye-(x2+y2)的灰度图像,图像中的阴影可设置为flat、interp、faceted:

surfl(x,y,z),xlabel('x'),ylabel('y'),zlabel('z')
shading interp;
colormap(gray);

 

 下面我们使用matlab内置函数来产生像球形或圆柱形这样的基本图像,例如:

t = 0:pi/10:2*pi;
[X,Y,Z] = cylinder(1+sin(t));
surf(X,Y,Z),colormap('default');
axis square

会得到如下图像:

 试试另一个稍微有点不同的函数,阴影设置为faceted:

t = 0:pi/10:2*pi;
[X,Y,Z] = cylinder(1+cos(t));
surf(X,Y,Z),shading faceted;
axis square

 

若将阴影设置为shading flat,则图像显示为:


本文由豆瓜网专栏作家 豆瓜 投稿发布,并经过豆瓜网编辑审核。

转载此文章须经作者同意,并附上出处(豆瓜网)及本页链接。

若稿件文字、图片、视频等内容侵犯了您的权益,请联系本站进行 投诉处理

相关搜索

matlab画三维图
图标 图标

豆瓜

豆瓜网

豆瓜网专栏

  • androidstudio安装配置说明

    图标
    豆瓜 图标 · 今天 15:29:50 · 6浏览
  • js日期格式化yyyymmdd代码分享

    图标
    豆瓜 图标 · 今天 15:26:55 · 9浏览
  • pytorch安装配置说明

    图标
    豆瓜 图标 · 今天 15:24:32 · 10浏览
  • 全部评论

    豆瓜

    豆瓜网

    豆瓜网专栏

  • androidstudio安装配置说明
  • js日期格式化yyyymmdd代码分享
  • pytorch安装配置说明
  • js设计模式有哪些
  • 怎么实现java快速排序
  • 我来说两句