《MATLAB与仿真系统课程设计》.docx

上传人:b****2 文档编号:2373296 上传时间:2023-05-03 格式:DOCX 页数:31 大小:789.31KB
下载 相关 举报
《MATLAB与仿真系统课程设计》.docx_第1页
第1页 / 共31页
《MATLAB与仿真系统课程设计》.docx_第2页
第2页 / 共31页
《MATLAB与仿真系统课程设计》.docx_第3页
第3页 / 共31页
《MATLAB与仿真系统课程设计》.docx_第4页
第4页 / 共31页
《MATLAB与仿真系统课程设计》.docx_第5页
第5页 / 共31页
《MATLAB与仿真系统课程设计》.docx_第6页
第6页 / 共31页
《MATLAB与仿真系统课程设计》.docx_第7页
第7页 / 共31页
《MATLAB与仿真系统课程设计》.docx_第8页
第8页 / 共31页
《MATLAB与仿真系统课程设计》.docx_第9页
第9页 / 共31页
《MATLAB与仿真系统课程设计》.docx_第10页
第10页 / 共31页
《MATLAB与仿真系统课程设计》.docx_第11页
第11页 / 共31页
《MATLAB与仿真系统课程设计》.docx_第12页
第12页 / 共31页
《MATLAB与仿真系统课程设计》.docx_第13页
第13页 / 共31页
《MATLAB与仿真系统课程设计》.docx_第14页
第14页 / 共31页
《MATLAB与仿真系统课程设计》.docx_第15页
第15页 / 共31页
《MATLAB与仿真系统课程设计》.docx_第16页
第16页 / 共31页
《MATLAB与仿真系统课程设计》.docx_第17页
第17页 / 共31页
《MATLAB与仿真系统课程设计》.docx_第18页
第18页 / 共31页
《MATLAB与仿真系统课程设计》.docx_第19页
第19页 / 共31页
《MATLAB与仿真系统课程设计》.docx_第20页
第20页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

《MATLAB与仿真系统课程设计》.docx

《《MATLAB与仿真系统课程设计》.docx》由会员分享,可在线阅读,更多相关《《MATLAB与仿真系统课程设计》.docx(31页珍藏版)》请在冰点文库上搜索。

《MATLAB与仿真系统课程设计》.docx

《MATLAB与仿真系统课程设计》

自动化专业课程设计报告

《MATLAB与仿真系统课程设计》

 

班级

姓名

学号

时间2010.12.13-2010.12.17

地点电信实验中心软件机房

指导教师邓长辉

 

大连海洋大学信息工程学院

自动化教研

大连海洋大学课程设计报告纸

学院(系):

专业班级:

姓名:

学号:

图像与动画

一、课程设计的目的与要求

1、课程设计目的:

(1)进一步理解和消化书本知识,运用所学知识和技能进行简单的设计。

(2)通过课程设计提高应用能力,为专业课的学习打下基础。

(3)培养查阅资料的习惯,训练和提高独立思考和解决问题的能力。

(4)通过命令的调用来显示磁盘目录下的某个图像;

完成简单动画的制作,结合GUI可视化程序设计培养知识综合运用能力和技巧。

2、课程设计要求

从课程设计的目的出发,通过设计工作的各个环节,达到以下要求:

(1)能够正确理解课程设计的题目和意义,全面思考问题。

(2)运用科学合理的方法,认真按时完成。

二、课程设计课题的分析

MATLAB提供了一种能力,它可以存储一系列各种类型的二维或三维图,然后像放电影一样把它们按次序重放出来。

在某种意义上,动画提供的运动为图形增加另一个维数。

通常图形的次序不必以任意的方式关联起来。

一种明显的动画类型是取出三维图形然后缓慢地将它旋转,这样我们就可以从不同角度来观察它。

另一种类型是当一个参数变化时,依次显示某些问题解的图形。

MATLAB中的函数moviein,getframe和movie提供了捕捉和播放动画的所需工具。

函数moviein可以产生一个帧矩阵来存放动画中的帧;函数getframe对当前的图像进行快照;而函数movie按顺序回放各帧。

照这样,捕捉和回放动画的方法是:

(1)创建帧矩阵;

(2)对动画中的每一帧生成图形,并把它捕捉到到帧矩阵里;

(3)从帧矩阵里回放动画。

1、结合本身所学知识以及课程设计要求,确立自我方案的整体设计

整体设计一个可视化模块,该模块分图像显示模块和动画播放模块。

图像显示模块主要是用来显示磁盘目录下的某个图片;动画播放模块主要是用来播放动画。

2、对整体方案进行划分,分模块对各个小问题进行解决

i.图片显示模块:

在MATLAB中键入所需代码,使其能够调用磁盘目录下的图片文档;

ii.动画播放模块:

在MATLAB中键入所需代码,使其能够播放动画;

iii.GUI的设计:

建立一个GUI的模板,使其能都搭载图片显示模块和动画播放模块。

3、对各个模块进行整合,使其工作

三、课程设计的内容与安排

通过编程显示磁盘目录下的图像文件,对GUI中的CALLBACK进行编程,使其能够完成调用图片这一功能;编程实现不断变化的图形,该图为自己绘制,且观赏价值高。

时间安排参考如下教学时间安排

教学安排

周一布置任务,查阅资料

周二设计

周三设计

周四仿真、调试

周五验收、总结报告

四、课程设计的步骤

1、图片显示模块的设计。

图片显示模块是为了在MATLAB中显示本地磁盘中的图片文档而建立的一个模块

打开MATLAB程序,在弹出的“commandwindow”窗口中键入以下代码:

%=======================照片读取=================================

[x,cmap]=imread('E:

\picture\走走走\100815\DSC00285.JPG');

image(x);

colormap(cmap);

axisimageoff

该段代码调用的是本地磁盘E:

\picture\走走走\100815\目录的下DSC00285.JPG图片文档

2、动画播放模块的设计

动画播放模块是为了在MATLAB环境下绘制和播放动画而建立的一个模块

打开MATLAB编辑器,在空白处键入以下代码:

 

(1).布朗运动的代码

%=====================布朗运动==================================

n=50;%指定布朗运动的点数

s=0.02;%指定温度或速率

%产生n个随机点(x,y),处于-0.5到0.5之间

%==================================

x=rand(n,1)-0.5;

y=rand(n,1)-0.5;

h=plot(x,y,'.');%绘制随机点

axis([-11-11]);

axissquare

shadinginterp

gridoff

set(h,'EraseMode','Xor','MarkerSize',20);%设置擦除模式为Xor

%循环5000次,产生动画效果

%==================================

fori=linspace(1,10,5000)

drawnow

x=x+s*randn(n,1);%在坐标点附近添加随机噪声

y=y+s*randn(n,1);

set(h,'XData',x,'YData',y);%通过改变数据属性来重新绘图

end

 

(2).球体运动动画的代码

%==============================小球运动========================

fill([6,7,7,6],[5,5,0,0],[0,0.5,0]);%右边竖条的填充

holdon;%保持当前图形及轴系的所有特性

fill([2,6,6,2],[3,3,0,0],[0,0.5,0]);%左边竖条的填充

holdon;%保持当前图形及轴系的所有特性

t1=0:

pi/60:

pi;

plot(4-2*sin(t1-pi/2),5-2*cos(t1-pi/2));%绘制中间的凹弧图形

grid;%添加网格线

axis([0,9,0,9]);%定义坐标轴的比例

axis('off');%关闭所有轴标注,标记,背景

fill([1,2,2,1],[5,5,0,0],[0,0.5,0]);%中间长方形的填充

holdon;%保持当前图形及轴系的所有特性

title('Sphere');%定义图题

x0=6;

y0=5;

head1=line(x0,y0,'color','b','linestyle','.',...

'erasemode','xor','markersize',30);

head2=line(x0,y0,'color','b','linestyle','.',...

'erasemode','xor','markersize',50);%设置小球颜色,大小,线条的擦拭方式

t=0;%设置小球的初始值

dt=0.001;%设置运动周期

t1=0;%设置大球的初始值

dt1=0.001;

while1%条件表达式

t=t+dt;

x1=9-1*t;

y1=5;

x3=6;

y3=5;

ift>0

x2=6;

y2=5;%设置小球的运动轨迹

end

ift>2.8

t=t+dt;

a=sin(t-3);

x1=6.1;

y1=5.1;

x3=4-2*sin(1.5*a);

y3=5-2*cos(1.5*a);%设置大球的运动轨迹

end

set(head1,'xdata',x1,'ydata',y1);%设置球的运动

set(head2,'xdata',x3,'ydata',y3);

drawnow;

endguide

 

3、GUI的设计

建立一个GUI的模板,使其能都搭载图片显示模块和动画播放模块

(1)打开MATLAB软件,在弹出的“commandwindow”中键入:

guide回车,弹出如图1:

图1.GUI设计启动窗口

(2)选择“BlankGUI(Default)”点击“OK”按钮进入GUI编辑窗口,如图2:

图2.GUI编辑窗口

(3)添加组件。

组件名称

数量

String

Tag

FrontSize

axes

pushbutton

1

4

——

Brownian

Sphere

Picture

Quit

axes1

BT_Brownian

BT_Sphere

BT_PictureShow

BT_Quit

10.0

10.0

10.0

10.0

10.0

表1.组件列表及部分属性设置

图3.组件的摆放

在GUI界面内添加组件如图3所示,在修改完部分属性以后界面如图5所示,修改界面如图4所示。

图4.属性编辑栏

图5.属性修改完后的GUI界面

(4)菜单栏的设置(这里不添加默认的菜单栏,即GUI界面的MenuBar属性设置为none)

图6.菜单栏的编辑

为菜单栏添加组件组件清单如表2所示,组件添加如图7所示

图7.菜单栏的修改

名称

数量

Label

Tag

Accelerator

NewMen

 

NewMenuItemu

4

 

6

File

BackColor

Help

Abou

Brownian

Sphere

PictureShow

Exit

Yellow

Red

NM_File

NM_BackColor

NM_Help

NM_AboutNMI_Brownian

NMI_Sphere

NMI_PictureShow

NMI_Exit

NMI_Yellow

NMI_Red

--

--

--

--

Ctrl+B

Ctrl+S

Ctrl+P

Ctrl+E

--

--

表2.菜单栏的部分属性设置

(5)其余设置

GUI界面的Tag属性设为“CourseExercise”中文意思为“课程设计”

4、代码的添加以及模块的组合封装

按钮Quit功能实现:

%---ExecutesonbuttonpressinBT_Quit.

functionBT_Quit_Callback(hObject,eventdata,handles)

%hObjecthandletoBT_Quit(seeGCBO)

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesstructurewithhandlesanduserdata(seeGUIDATA)

%=================================================================

close(gcf)

%================================================================

注:

个人习惯在自己添加的代码处添加注释头文件%<>========尾文件%========

 

按钮Brownian功能实现:

%---ExecutesonbuttonpressinBT_Brownian.

functionBT_Brownian_Callback(hObject,eventdata,handles)

%hObjecthandletoBT_Brownian(seeGCBO)

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesstructurewithhandlesanduserdata(seeGUIDATA)

%=============================================================

%=====================布朗运动==================================

n=50;%指定布朗运动的点数

s=0.02;%指定温度或速率

%产生n个随机点(x,y),处于-0.5到0.5之间

%==================================

x=rand(n,1)-0.5;

y=rand(n,1)-0.5;

h=plot(x,y,'.');%绘制随机点

axis([-11-11]);

axissquare

shadinginterp

gridoff

set(h,'EraseMode','Xor','MarkerSize',20);%设置擦除模式为Xor

%循环5000次,产生动画效果

%==================================

fori=linspace(1,10,5000)

drawnow

x=x+s*randn(n,1);%在坐标点附近添加随机噪声

y=y+s*randn(n,1);

set(h,'XData',x,'YData',y);%通过改变数据属性来重新绘图

end

%============================================================

 

按键Sphere功能实现:

%---ExecutesonbuttonpressinBT_Sphere.

functionBT_Sphere_Callback(hObject,eventdata,handles)

%hObjecthandletoBT_Sphere(seeGCBO)

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesstructurewithhandlesanduserdata(seeGUIDATA)

%===============================================================

%==============================小球运动========================

fill([6,7,7,6],[5,5,0,0],[0,0.5,0]);%右边竖条的填充

holdon;%保持当前图形及轴系的所有特性

fill([2,6,6,2],[3,3,0,0],[0,0.5,0]);%左边竖条的填充

holdon;%保持当前图形及轴系的所有特性

t1=0:

pi/60:

pi;

plot(4-2*sin(t1-pi/2),5-2*cos(t1-pi/2));%绘制中间的凹弧图形

grid;%添加网格线

axis([0,9,0,9]);%定义坐标轴的比例

axis('off');%关闭所有轴标注,标记,背景

fill([1,2,2,1],[5,5,0,0],[0,0.5,0]);%中间长方形的填充

holdon;%保持当前图形及轴系的所有特性

title('Sphere');%定义图题

x0=6;

y0=5;

head1=line(x0,y0,'color','b','linestyle','.',...

'erasemode','xor','markersize',30);

head2=line(x0,y0,'color','b','linestyle','.',...

'erasemode','xor','markersize',50);%设置小球颜色,大小,线条的擦拭方式

t=0;%设置小球的初始值

dt=0.001;%设置运动周期

t1=0;%设置大球的初始值

dt1=0.001;

while1%条件表达式

t=t+dt;

x1=9-1*t;

y1=5;

x3=6;

y3=5;

ift>0

x2=6;

y2=5;%设置小球的运动轨迹

end

ift>2.8

t=t+dt;

a=sin(t-3);

x1=6.1;

y1=5.1;

x3=4-2*sin(1.5*a);

y3=5-2*cos(1.5*a);%设置大球的运动轨迹

end

set(head1,'xdata',x1,'ydata',y1);%设置球的运动

set(head2,'xdata',x3,'ydata',y3);

drawnow;

end

%==============================================================

 

按钮PictureShow功能实现:

%---ExecutesonbuttonpressinBT_PictureShow.

functionBT_PictureShow_Callback(hObject,eventdata,handles)

%hObjecthandletoBT_PictureShow(seeGCBO)

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesstructurewithhandlesanduserdata(seeGUIDATA)

%==========================================================

%=======================照片读取=================================

[x,cmap]=imread('E:

\picture\走走走\100815\DSC00285.JPG');

image(x);

colormap(cmap);

axisimageoff

%=========================================================

 

颜色的实现:

%--------------------------------------------------------------------

functionNMI_Red_Callback(hObject,eventdata,handles)

%hObjecthandletoNMI_Red(seeGCBO)

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesstructurewithhandlesanduserdata(seeGUIDATA)

%=========================================

set(handles.CourseExercise,'color','r');%背景色为红色

%=========================================

%--------------------------------------------------------------------

functionUntitled_3_Callback(hObject,eventdata,handles)

%hObjecthandletoUntitled_3(seeGCBO)

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesstructurewithhandlesanduserdata(seeGUIDATA)

%--------------------------------------------------------------------

functionNMI_Yellow_Callback(hObject,eventdata,handles)

%hObjecthandletoNMI_Yellow(seeGCBO)

%eventdatareserved-tobedefinedinafutureversionofMATLAB

%handlesstructurewithhandlesanduserdata(seeGUIDATA)

%=========================================

set(handles.CourseExercise,'color','y');%背景色为黄色

%=========================================

 

五、课程设计的结果

程序所有代码为:

functionvarargout=CourseExercise(varargin)

%COURSEEXERCISEM-fileforCourseExercise.fig

%COURSEEXERCISE,byitself,createsanewCOURSEEXERCISEorraisestheexisting

%singleton*.

%

%H=COURSEEXERCISEreturnsthehandletoanewCOURSEEXERCISEorthehandleto

%theexistingsingleton*.

%

%COURSEEXERCISE('CALLBACK',hObject,eventData,handles,...)callsthelocal

%functionnamedCALLBACKinCOURSEEXERCISE.Mwiththegiveninputarguments.

%

%COURSEEXERCISE('Property','Value',...)createsanewCOURSEEXERCISEorraisesthe

%existingsingleton*.Startingfromtheleft,propertyvaluepairsare

%appliedtotheGUIbeforeCourseExercise_OpeningFunctiongetscalled.An

%unrecognizedpropertynameorinvalidvaluemakesproperty

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2