MATLAB程序的设计报告--基于MATLAB动画播放及音乐播放

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

. .

《MATLAB程序设计》课程设计报告

设计题目:基于MATLAB的动画演示

及背景音乐插入

专业: 2011级通信工程

(学号):储兆雄 1162310213

邓少林 1162310214

徐凯越 1162310223 指导教师:倪建军(博士/副教授)

时间: 2013年12月20日

目录

1、设计目的

2、总体设计

3、具体设计(功能实现)

4、结果分析

5、改进方向

6、心得体会

文献

附录

1、设计目的

学会运用matlab工具箱实现matlab GUI设计,处理动画运行,以及添加背景音乐,并实现其动态操作,如继续、暂停等功能。

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 GUIDATA) 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 btnvstart (see GCBO)

% eventdata reserved - to be defined in a future version of MATLAB % handles structure with handles and user data (see GUIDATA)

global vfname

try

len=length(vfname);

run(vfname(1:len-2));

catch

msgbox('sorry, there are some error while playing

movie!','NOTICING');

end

以下是其中两个动画程序

snow动画

%***************设置背景****************************%

A=imread('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') ;

end

while 1

if ~ishandle(h)

return

end

for i=1:N

temp=get(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(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

相关文档
最新文档