




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
贵州航天职业技术学院姓 名:赵 才 洪班 级:12计算机应用技术(1)班学 号:A123GZ0530101028指导老师:周 庆 国完成日期:二零一四年六月十五日图形图像映射 ii前言 MATLAB是一种面向科学与工程计算的高级语言,允许使用数学形式的语言编写程序,且比FORTRAN和C等语言更加接近我们书写计算公式的思维方式,用MATLAB编写程序犹如在演算纸上排列出公式与求解问题。因此,MATLAB语言也可通俗地称为演算纸式科学算法语言。由于它编写简单,所以编程效率高,易学易懂。 MATLAB是美国MathWorks公司自20世纪80年代中期推出的数学软件,具有优秀的数值计算能力和卓越的数据可视化能力,可以提供与矩阵有关的强大的数据处理和图形显示功能,为软件开发人员在程序编制过程中实现数值计算和图形显示新添了又一行之有效的开发平台,所以一经推出便使其很快在数学软件中脱颖而出。到目前为止,其最高版本7.0版已经推出。随着版本的不断升级,它在数值计算及符号计算功能上得到了进一步完善。MATLAB已经发展成为多学科、多种工作平台的功能强大的大型软件,在控制、通信、信号处理及科学计算等领域中得到广泛的应用,已经被认可为能够有效提高工作效率、改善设计手段的工具软件。MATLAB具有用法简单、灵活、程式结构性强、延展性好等优点,已经逐渐成为科技计算、视图交互系统和程序中的首选语言工具。特别是它在线性代数、数理统计、自动控制、数字信号处理、动态系统仿真等方面表现突出,已经成为科研工作人员和工程技术人员进行科学研究和生产实践的有利武器。咋子目录一、MATLAB简介1二、MATLAB在图形图像上的应用2三、实训题目及要求31、实训题目:32、实训要求:3四、程序流程图4五、实训过程51、安装配置MATLAB环境:52、程序编写:53、程序调试134、编写课程设计报告:13六、程序清单151、将图片映射到圆柱体上的源程序:152、将图像映射到球体上的源程序:153、从键盘输入图片路径指令:164、程序分支语句:165、提示及说明语句:177、关闭轴和网格的语句:178、退出语句:189、出错纠正语句:18七、设计体会19八、致谢21九、参考文献221、参考书籍:222、参考实验程序:223、switch语句:234、for语句:24 12 计算机应用技术(1)班 赵才洪 一MATLAB概述MATLAB是一种专业的计算机程序,用于工程科学的矩阵数学运算。它极其灵活的计算体系,用于解决各种重要的技术问题。Matlab 程序执行matlab 语言,提供了一个极其广泛的预定义函数库,这样就使得技术工作变得简单高效。在解决工程技术问题方面,MATLAB 比其它任何计算机语言都简单且高效。 MathWorks公司1993年推出了MATLAB 4。0版,1995年推出4。2C版(for win3。X)1997年推出5。0版。1999年推出5。3版。MATLAB 5。X较MATLAB 4。X无论是界面还是内容都有长足的进展,其帮助信息采用超文本格式和PDF格式,在Netscape 3。0或IE 4。0及以上版本,Acrobat Reader中可以方便地浏览。 时至今日,经过MathWorks公司的不断完善,MATLAB已经发展成为适合多学科,多种工作平台的功能强大大大型软件。在国外,MATLAB已经经受了多年考验。在欧美等高校,MATLAB已经成为线性代数,自动控制理论,数理统计,数字信号处理,时间序列分析,动态系统仿真等高级课程的基本教学工具;成为攻读学位的大学生,硕士生,博士生必须掌握的基本技能。在设计研究单位和工业部门,MATLAB被广泛用于科学研究和解决各种具体问题。在国内,特别是工程界,MATLAB一定会盛行起来。可以说,无论你从事工程方面的哪个学科,都能在MATLAB里找到合适的功能。二MATLAB在图形图像上的应用MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和距阵用图形表现出来,并且可以对图形进行标注和打印。高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。可用于科学计算和工程绘图。新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使他不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等),MATLAB同样表现了出色的处理能力。同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。另外新版本的MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。MATLAB还可以用于图形图像映射仿真,观察仿真效果,以达到与实物相近的效果,用于工艺品的生产与制作。可以先在MATLAB上对工艺品进行仿真实验,当仿真效果达到自己想要的效果时才正式生产制作,减小了成本的开销,节约了时间、精力和不必要的损失,并且达到了较好的效果,推动了科技的发展。三设计题目及要求1.设计题目: 图像映射动画设计(任意从键盘上输入图像文件的路劲和文件名、文件格式,然后分别将其映射到一个圆柱体和一个球体上,并让其圆柱体和球体旋转)2、设计具体要求: a.源程序及程序清单。 b.运行过程,结果及动画录像。 c.课程设计报告电子文档及打印文档。 d.保留程序源文件及.exe可执行文件。 e.绘制出程序流程图。 f.设计总结及体会。g.将源程序、.m文件、.exe文件及电子文档等刻录到光盘中上交指导教师。程序开始四.程序流程图disp给出提示命令窗口中input输入图片路径并赋值给变量非法输入时输入正确时for设置循环次数disp再给出提示input输入选择映射效果输入0、12或3switch判断输入类型并作出选择3输入2时执行输入0时执行输入1时执行Case(2)圆柱体和球体映射Case(0)球体映射 Case(1)圆柱体映射1switch判断是否继续end程序结束2输入0执行输入0执行5 设计过程a.编写程序clcclearfor QQ=1disp(提示说明:);disp(输入1继续,输入其他键退出,); %给出提示QQ=input(请选择:n); %从键盘输入数据A=int2str(QQ); %将数值转换成字符串switch fix(A); %switch分支程序 case(1); %子分支程序 disp(输入图片路径后,按下回车键:) ff=input(请输入图片的路径(用括住),请输入:n); I=imread(ff); disp(输入0按下回车将图片映射到球体上:); disp(输入1按下回车将图片映射到圆柱体上:); disp(输入2按下回车将图片映射到球体和圆柱体上:); disp(输入3按下回车退出程序:); dd=input(请输入选择项请输入:n); B=int2str(dd); (括住,请输入:n); %将数值转换为字符串 switch fix(B); %switch分支程序 case(0); % 子分支程序2 clf x,y,z=sphere(100); %产生球体 K=imread(ff); z=-z; warp(x,y,z,K); grid off; axis off; axis square; %产生正方形坐标系 az,el=view; for n=1:5:360; view(az+n,4),pause(0.1); end case(1); % 子分支程序1 clf %清除当前图形 x,y,z=cylinder; %产生圆柱体 z=-z; warp(x,y,z,I); %投影绘图 grid off; % 关闭网格 axis off; %关闭边框线 az,el=view; %视角的位置 view(az+180,el); for m=1:5:360; %for循环 view(az-m,5),pause(0.1); end %for循环结束 case(2); % 子分支程序3 clf I=imread(ff); x1,y1,z1=cylinder; z1=-z1; subplot(121); warp(x1,y1,z1,I); grid off; axis off; I=imread(ff); x2,y2,z2=sphere(100); z2=-z2; subplot(122); warp(x2,y2,z2,I); grid off; axis off; axis square; %产生正方形坐标系 az,el=view; for m=1:5:360; subplot(1,2,1); view(az-m,el); pause(0.1); subplot(1,2,2); view(az-m,el); pause(0.1); end case(3); %子分支程序4 disp(欢迎下次使用,程序退出!); break %退出循环 close 关闭图形窗口 otherwise %判断语句 disp(输入错误!请重新输入:); end %退出switch程序endendb.保存文件并重新命名。c.按F5运行程序,查看命令窗口有无错误提示或有警告语句出现。d.运行成功后命令窗口的显示状态如下图所示:e.输入1并按回车命令窗口显示截图如下:f.输入图片路径回车后命令窗口如下图:g.输入1回车后动画截图:该分支程序运行完后命令窗口会出现下图的提示:让用户再次输入是否继续,如下图所示:h.输入2后回车;程序退出,如下图所示:若输入1程序则回到开始状态让用户继续运行。I.输入0时程序运行截图如下:其命令窗口截图如下:j.其命令窗口截图如下:k.输入2时程序运行截图如下:l.其命令窗口截图如下:m.去掉程序中的grid off; 和axis off;让其显示轴和网格,同样运行程序,并观察结果如下图所示: 3、程序调试: A、运行程序,观察其提示状态、步长,旋转速度等是否合理。 B、修改不合理的地方,再运行程序,验证是否合理。 C、程序运行通过后,录下程序运行的步骤及其简单操作过程。4、编写课程设计报告: A、列举程序清单。 B、绘制给出程序流程图。C、给出源程序。D、写出设计过程及体会。E、根据实训写出相应收获及心得。F、给出参考文献及其参考资料。G、录制程序运行的视频。H、将软件及其电子文档刻录到光盘中上交指导教师。六、程序清单1、将图片映射到圆柱体上的源程序: clear,clc,clf ff=input(请输入图片的路径(用括住):); I=imread(ff);z=-z;subplot(121),warp(x,y,z,I);grid off;axis off;az,el=view;view(az+180,el);for m=1:5:360; view(az-m,10),pause(0.1);end2、将图像映射到球体上的源程序:clear,clc,clfQQ=input(请输入图片的路径(用括住):);I=imread(QQ);z=-z;subplot(122),warp(x,y,z,K);grid off;axis off;axis square;az,el=view;for n=1:5:360; view(az+n,10),pause(0.1);end3、从键盘输入图片路径指令:ff=input(请输入图片的路径(用括住););I=imread(ff);其中ff可以自己定义,根据自己的喜欢和爱好设定,但步能重复定义,否则会出错。4、程序分支语句:dd=input(请输入选择项用括住,请输入:n);switch fix(dd);case(1);case(0);case(2);otherwise disp(输入错误!请重新输入:);end其中dd可以自己定义,根据自己的喜欢和爱好设定,但步能重复定义,否则会出错。5、提示及说明语句:disp(提示说明:);disp(输入图片路径文件名、格式后,按下回车键:);disp(提示:);disp(输入0按下回车将图片映射到球体上:);disp(输入1按下回车将图片映射到圆柱体上:);disp(输入2按下回车将图片映射到球体圆体上:);6、for循环语句:A、for n=1:5:360; view(az+n,10),pause(0.1);endB、for m=1:5:360; view(az-m,10),pause(0.1);end7、关闭轴和网格的语句:grid off;axis off;axis square; %产生正方形坐标系再加上axis square;语句是椭圆体的球面变成正圆球面。8、退出语句:disp(欢迎下次使用,程序退出!); break close 9、出错纠正语句:otherwise disp(输入错误!请重新输入:);参考程序function a72clear,clc,clfx,y,z=cylinder;I=imread(f:gg.jpg);z=-z;subplot(121),warp(x,y,z,I);grid off;axis off;az,el=view;view(az+180,el);for m=1:5:360; view(az-m,10),pause(0.1);endclear,clc,clfx,y,z=sphere(100);K=imread(f:gg.jpg);z=-z;subplot(122),warp(x,y,z,K);grid off;axis off;axis square;az,el=view;for n=1:5:360; view(az+n,10),pause(0.1);end(最终程序根据一上程序参考更改而来)3、switch语句:Switch语句是多分支选择语句。其基本格式为:Switch 表达式 Case 数组1 语句组1 Case 数组2 语句组2 . Case 数组n 语句组n Otherwise 语句组n+1end说明:先计算表达式的值,再按顺序与case语句后面的数组值进行比较,如果相等则执行该语句,然后执行end后的语句,不在继续比较。当表达式的值不等于任何一个case语句后面的数组值时,程序将执行otherwise语句后的语句组,再执行end后的语句。注意:这种情况下缺省otherwise语句,程序会提示出错。4、for语句: For语句为计数循环语句,在许多情况下,循环条件是有规律变化的,通常把循环条件初值、终值和变化步长放在循环语句开头,这种形式就是for语句的循环结构。其一般形式是;for 循环变量名=表达式1:表达式2:表达式3 语句体end说明:表达式1的值是循环体变量的初值,表达式2的值是循环步长,表达式3的值是循环变量的终值。初值、步长和终值可以取整数、小数、正数和负数,步长可以为默认值。默认值为1. 总结通过这次设计,是我对MATLAB有了一个基础的了解,在学习MATLAB编程中需要很多的参考书,要尽量多的熟悉matlab自带的函数及其作用,因为matlab的自带函数特别多,基本上能够满足一般的数据和矩阵的计算,所以基本上不用你自己编函数。这一点对程序非常有帮助,可以使程序简单,运行效率高,可以节省很多时间。本次课设中用了很多MATLAB自带的函数,使程序变得很简单而有效。 在编程的过程中学习,程序需要什么知识再去补充,编程是一点一点积累的,所以需要做一些随手笔记什么的。课题需要什么函数,需要什么模块就应该去着重看那个知识点,就应该一步一步学,如果太急于把所有东西都学到,也是不好的,更是实现不了的。 总之,通过这次学习,我了解了一下这个软件总体的功能,以及通过自己编写一些代码也学到了一些用法和知识。我相信统统不时的积累,我会慢慢的学会使用MATLAB。刚拿到题目的时候还有点担忧。由于平时汇编语言的知识掌握的并不牢固,并且也没有过像这样的为期一周的汇编语言实践课程。但当静下心来仔细把问题读懂和头脑中有了大致思路的时候,这种担忧就完全消失了。其实这次课程设计并不要求你把书上各种指令及其工能掌握的很好并且能熟练的运用MATLAB语言编程,而恰恰是利用这次课程设计的机会来提高这方
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年无人机驾驶员职业技能考核试卷及答案(含实操模拟题)
- 腔镜规范化操作理论试题及答案
- 足球知识面试题库大全及答案
- 总行机关招聘面试题库及答案
- 高炉煤气合同模板(3篇)
- 安考易起重安全考试题库及答案
- 全国离婚标准协议样本与财产分割及子女抚养执行
- 垫资借款合同书(科技研发中心)
- 公园内特色商业区租赁与运营管理合同
- 二级园林专业试题及答案
- 脑科生理病理图谱解读
- 足球教练员的职业素养与道德规范
- 产地证培训讲义
- 《南京理工大学化工》课件
- 养殖场远程视频监控解决方案
- 二手车转让免责协议书范本
- 化粪池及隔油池清洁服务方案
- 骨科患者辅助器具选择与使用
- 电力电缆工程施工组织设计
- 劳动课种植教学方案
- 小学数学《分数除法》50道计算题包含答案
评论
0/150
提交评论