美文网首页嵌牛IT观察
MATLAB画三维图像

MATLAB画三维图像

作者: 熊猫君33 | 来源:发表于2020-06-27 18:30 被阅读0次

    姓名:刘肖珊

    学号:19021210919

    转自:https://www.cnblogs.com/aixuexihs/p/10620200.html

    【嵌牛导读 】:matlab是一款功能强大的编程软件,三维图像常用,文章介绍matlab如何画三维图像

    【嵌牛鼻子】:MATLAB、三维图 

    【嵌牛提问】:matlab如何画三维图像?

    【嵌牛正文】:

    当我们学习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画三维图像

        本文链接:https://www.haomeiwen.com/subject/adyvfktx.html