matlab画三维图像的示例代码(附demo)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
matlab画三维图像的⽰例代码(附demo)
当我们学习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,则图像显⽰为:
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。