matlab画三维图像的示例代码(附demo)
技术  /  管理员 发布于 7年前   150
当我们学习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,则图像显示为:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
122 在
学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
Copyright·© 2019 侯体宗版权所有·
粤ICP备20027696号