第五章节MATLAB绘图.pptVIP

  1. 1、本文档共72页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章节MATLAB绘图

例5.35 光照处理后的球面并观察不同光照模式下的效果。 程序如下: [x,y,z]=sphere(20); subplot(1,4,1); surf(x,y,z);axis equal; shading interp; hold on; subplot(1,4,2); surf(x,y,z);axis equal; light(Position,[0,1,1]); shading interp;lighting flat; hold on; plot3(0,1,1,p);text(0,1,1, light); subplot(1,4,3); surf(x,y,z);axis equal; light(Position,[0,1,1]); shading interp;lighting gouraud; hold on; subplot(1,4,4); surf(x,y,z);axis equal; light(Position,[0,1,1]); shading interp;lighting phong; 5.6.2 材质处理 材质体现了图形对象的反射特性,修改区域块和曲面对象的反射特性,可以改变在场景中应用光照时对象的显示外观。这些特性包括:镜面反射和漫反射、环境光、镜面反射指数、镜面反射光的颜色和背面光照。 例5.36 生成一个球体和一个立方体,观察不同光照属性对应的显示效果。 程序如下: sphere(36); h=findobj(Type,surface); set(h,FaceLighting,phong,FaceColor,interp,... EdgeColor,[0.4,0.4,0.4],BackFaceLighting,lit) hold on vert=[2,0,-1;2,1,-1;3,0,0;3,0,-1;2,0,0;2,1,0;3,1,0;3,0,0]; fac=[1,2,3,4;2,6,7,3;4,3,7,8;1,5,8,4;1,2,6,5;5,6,7,8]; patch(Faces,fac,Vertices,vert,FaceColor,y); light(Position,[1,3,2]); light(Position,[-3,-1,3]); material shiny axis equal hold off 5.7 图像显示与动画制作 5.7.1 图像显示 1. imread和imwrite函数 imread和imwrite函数分别用于将图像文件读入MATLAB工作空间,以及将图像数据和色图数据一起写入一定格式的图像文件。 2. image和imagesc函数 这两个函数用于图像显示。为了保证图像的显示效果,一般还应使用colormap函数设置图像色图。 例5.37 在E盘根目录下有一图像文件flower.jpg,在图形窗口显示该图像。 程序如下: [x,cmap]=imread(e:\flower.jpg); %读取图像的数据阵和色图阵 image(x); %显示图像 colormap(cmap); axis image off %保持宽高比并取消坐标轴 5.7.2 动画制作 1.影片动画制作 如果将MATLAB产生的多幅图形保存起来,并利用系统提供的函数进行播放,就可产生动画效果。MATLAB提供了3个函数用于捕捉和播放动画,它们分别为getframe、moviein和movie。 getframe函数可截取每一幅画面信息而形成一个很大的列向量。该向量可保存到一个变量中。显然,保存n幅图就需一个大矩阵。 moviein(n)函数用来建立一个足够大的n列矩阵。该矩阵用来保存n幅画面的数据,以备播放。之所以要事先建立一个大矩阵,是为了提高程序运行速度。 movie(m,n)函数播放由矩阵m所定义的画面n次,默认时播放一次。 例5.38 播放一个直径不断变化的球体。 程序如下: [x,y,z]=sphere(50); m=moviein(30); %建立一个30列大矩阵 for i=1:30 surf(i*x,i*y,i*z) %绘制球面 m(:,i)=getframe; %将球面保存到m矩阵 end movie(m,10); %以每秒10幅的速度播放球面 2.实时动画制作 制作实时动画的基本方法是,先画出初始图形,再计算活动对象的新位置,并在新位置上把它显示出来,最后擦除原位置上原有的对象,刷新屏幕。重复操作即可产生动画效果。 例5.39 模拟布

文档评论(0)

junjun37473 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档