MATLAB程序设计报告--基于MATLAB动画播放及音乐播放_第1页
MATLAB程序设计报告--基于MATLAB动画播放及音乐播放_第2页
MATLAB程序设计报告--基于MATLAB动画播放及音乐播放_第3页
MATLAB程序设计报告--基于MATLAB动画播放及音乐播放_第4页
MATLAB程序设计报告--基于MATLAB动画播放及音乐播放_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2012-2013学年第二学期MATLAB课设MATLAB程序设计课程设计报告设 计 题 目: 基于MATLAB的动画演示 及背景音乐插入 专 业: 2011级通信工程 姓名(学号): 储兆雄 1162310213 邓少林 1162310214 徐凯越 1162310223 指 导 教 师: 倪建军(博士/副教授)时 间: 2013年12月20日 目录1、设计目的2、总体设计3、具体设计(功能实现)4、结果分析5、改进方向6、心得体会文献附录1、设计目的学会运用matlab工具箱实现matlab GUI设计,处理动画运行,以及添加背景音乐,并实现其动态操作,如继续、暂停等功能。2、总体设计主要

2、包括:动画模块,音乐模块,动画显示模块3、具体设计(功能实现)1) 动画模块(1)打开动画文件:从文件打开对话框选择动画程序,实现动画播放的可选择性程序实现代码如下:function btnvopen_Callback(hObject, eventdata, handles)% hObject handle to btnvopen (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDA

3、TA)global vfname %动画文件名vfname vpname vindex=uigetfile(*.m,choose moive file);len=length(vfname);if vindex set(handles.txtvname,string,vfname(1:len-2)end打开对话框效果如下:(2)开始动画播放:先获取文件名称vfname(1:len-2),然后用run()命令来执行程序实现代码如下:function btnvstart_Callback(hObject, eventdata, handles)% hObject handle to btnvsta

4、rt (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global vfnametry len=length(vfname); run(vfname(1:len-2);catch msgbox(sorry, there are some error while playing movie!,NOTICING);end以下是其中两个动画程序snow动画%*设置背景*%A=im

5、read(H:YOU.jpg);h=figure;imshow(A); axes axis(0 1 0 1);axis off;set(gcf,color,k); N=20; handles=zeros(1,N);x=rand(2,N);fontsize=floor(rand(1,N)*17+32); new_handles_N=0;%绘图for i=1:N handles(i)=text(x(1,i),x(2,i),*,fontsize,fontsize(i),color,w); endwhile 1 if ishandle(h) return end for i=1:N temp=get(

6、handles(i),position); step=get(handles(i),fontsize)/48*0.05; if temp(2)0 new_handles_N=new_handles_N+1; new_handles(new_handles_N)= copyobj(handles(i),gca); if new_handles_N=500 delete(new_handles); new_handles_N=0; end temp(1)=rand(1); temp(2)=1; else temp(1)=temp(1)+rand(1)*0.1-0.05; temp(2)=temp(

7、2)-step; end set(handles(i),position,temp,rotation,get(handles(i),rotation)+5); end pause(.2)end简单程序动画try Movie=moviein(16); for k=1:16 plot(fft(eye(k+16) axis equal axis off M(k)=getframe; end movie(M,30);catch msgbox(sorry, there are some error while playing movie!,NOTICING);end动画效果如下:(3)暂停/继续功能:获

8、取pause按钮string参数,实现暂停和继续播放功能的切换,而通过timerPause()函数来实现其功能程序实现代码如下:function btnvpause_Callback(hObject, eventdata, handles)% hObject handle to btnvpause (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global symPaus

9、etry if strcmp(get(handles.btnvpause,string),pause) handles.timer1 = timer(Period, 0.1, ExecutionMode, singleShot,timerFcn, timerPause); set(handles.btnvpause,string,continue) start(handles.timer1); elseif strcmp(get(handles.btnvpause,string),continue) symPause =0; set(handles.btnvpause,string,pause

10、) endcatch msgbox(sorry, there are some error while excuting the function!,NOTICING,error);endfunction timerPause(hObject,eventdata,handles)global symPausesymPause=1;while symPause=1 pause(1)end(4)添加文字function btnvshow_Callback(hObject, eventdata, handles)% hObject handle to btnvshow (see GCBO)% eve

11、ntdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)try if get(handles.txtvword,string) set(handles.stxtshow,string,get(handles.txtvword,string),. visible,on,fontname,fontsize,12.0); else set(handles.stxtshow,visible,off); msgbox(A

12、dd some words first!); endcatch msgbox(sorry, there are some error while excuting the function!,NOTICING,error);end2)音乐模块(1)打开音乐function btnmbrowse_Callback(hObject, eventdata, handles)% hObject handle to btnmbrowse (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handle

13、s structure with handles and user data (see GUIDATA)global mfilepathtry mfname mpname mindex=uigetfile(*.wav,choose music); if mindex mfilepath=mpname mfname; set(handles.edit1,string,mfilepath); endcatch msgbox(Error,while importing music,NOTICING,error);end(2)播放音乐function btnstart_Callback(hObject

14、, eventdata, handles)% hObject handle to btnstart (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global mfilepath player signsign=false;try if mfilepath=0 data,Fs,nbits=wavread(mfilepath); else try data,Fs,nbits

15、=wavread(you are a song in my heart.wav); catch msgbox(sorry,the default music does not exist,NOTICING); end end player=audioplayer(data,Fs,nbits); play(player); sign=ture; set(handles.btnmpause,string,pause,Enable,on);catch msgbox(Rrror while playing music!,NOTICING);end(3)暂停/继续功能function btnmpause

16、_Callback(hObject, eventdata, handles)% hObject handle to btnmpause (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global player signtry if strcmp(get(handles.btnmpause,string),pause) pause(player); set(handles.

17、btnmpause,string,continue); elseif strcmp(get(handles.btnmpause,string),continue) resume(player); set(handles.btnmpause,string,pause); endcatch msgbox(sorry, there are some error while excuting the function!,NOTICING);end(4)停止播放音乐function btnmstop_Callback(hObject, eventdata, handles)% hObject handl

18、e to btnmstop (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)global player signtry stop(player); sign=false; set(handles.btnmpause,string,pause,Enable,off);catch msgbox(ERROR,NOTICING);end3)其他辅助功能(1)关闭程序:在退出程序时,

19、音乐不会自动停止,所以为了在退出程序时同时关闭音乐,才加入此功能function figure1_DeleteFcn(hObject, eventdata, handles)% hObject handle to figure1 (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA) global player signtry if strcmp(sign,true) stop(

20、player); close all endcatch msgbox(sorry, there are some error while excuting the function!,NOTICING,error);end(2)异常捕捉机制try-catch由于程序功能再设计上考虑的并不是十分全面,可能会出现预料不到的错误,因此加入此功能,避免在出现未知错误时,程序崩溃。4、结果分析功能实现上看,基本上能达到预期效果,各个功能均可正常执行,在动画播放方面,有些方面还不尽如人意,比如说,由于实现了动画的可切换性 ,也就是说动画程序的独立性,使得自己编写的m文件和程序内部参数部分不一致,使得出现不同效果,比如,有时动画在设计好的GUI界面上显示,有时又以独立的窗口运行。音乐模块则与预期一致。另外,应该说是非人为因素,在动画播放的时候,添加背景音乐,此时动画会暂停,当音乐开始播放时,动画也恢复正常。从这个结果看,程序内部命令会相互影响,所以这将是我们队优化程序的一个方向。5、改进方向从程序演示过程发现以下问题,这将是本程序优化的方向。(1)回调函数之间的干扰:最明显的结果表现为,动画运行过程中,点击其他的按钮,将短时间暂停动画程序。所以如何将动画独立于GUI之外,同时又受GUI界面按钮的控制,这是程序优化重点之一。(2)动画程序编写模块:虽说本程序可以实现动

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论