欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

MATLAB Learning Days---------三维图像

程序员文章站 2024-03-02 12:00:16
...

三维图像

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

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

图像:
MATLAB Learning Days---------三维图像
meshplot在三维上的扩展,另一个函数:

MATLAB Learning Days---------三维图像
我们取相同的区间:

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

MATLAB Learning Days---------三维图像
现在我们绘制表明带有渐变颜色的图像,有以下命令:

  • surf
  • surfc
  • surfl

只需修改最后一句:

>> surf(x,y,z)

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

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

MATLAB Learning Days---------三维图像
图像中的阴影可以设置为以下几种模式:

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

MATLAB Learning Days---------三维图像
修改shading选项改为flat:
MATLAB Learning Days---------三维图像

使用faceted遮光:

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

MATLAB Learning Days---------三维图像
使用interp:

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

MATLAB Learning Days---------三维图像