MATLAB图形绘制--三维图像

三维图像

我们可以调用mesh(x,y,z)命令来生成三维图像
我们来看函数:
函数
代码:

>> [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(x,y,z)命令绘制的图像
meshplot在三维上的扩展,另一个函数:

函数2
我们取相同的区间:

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

另一个函数
现在我们绘制表明带有渐变颜色的图像,有以下命令:

  • surf
  • surfc
  • surfl

只需修改最后一句:

>> surf(x,y,z)

图像:
surf命令
图像表面的颜色与高度是相称的,如果使用surfc命令就会在图像下留下投影:
surfc投影
调用surfl命令(l代表这是一个光照表面),它给我们显示三维光照物体的表面,可以使用这个命令产生没有线条的三维图像,图像还可以是灰度或者是彩色的:

>> surfl(x,y,z);
>> shading interp
>> colormap(gray)

surfl
图像中的阴影可以设置为以下几种模式:

  • flat:用同一种颜色为每个网格进行着色并隐藏网格线
  • facted:显示网格线
  • interp:使用颜色插值的方法进行着色,因此非常平滑
    接下来我们
    绘制一个类圆柱形的图像:
>> t = [0:pi/10:2*pi];
>> [x,y,z] = cylinder(1+sin(t));
>> surf(x,y,z);
>> axis square

圆柱1
修改shading选项改为flat:
圆柱2

使用faceted遮光:

>> [x,y,z] = cylinder(1+cos(t));
>> surf(x,y,z);
>> axis square
>> shading faceted

1
使用interp:

>> [x,y,z] = cylinder(1+cos(t));
>> surf(x,y,z);
>> axis square
>> shading interp

2

发布了84 篇原创文章 · 获赞 18 · 访问量 5805

猜你喜欢

转载自blog.csdn.net/qq_44486550/article/details/105300786