MATLAB报告范例.docx
- 文档编号:16387011
- 上传时间:2023-07-13
- 格式:DOCX
- 页数:15
- 大小:151.96KB
MATLAB报告范例.docx
《MATLAB报告范例.docx》由会员分享,可在线阅读,更多相关《MATLAB报告范例.docx(15页珍藏版)》请在冰点文库上搜索。
MATLAB报告范例
课程设计报告
课程名称:
MATLAB程序设计及应用
设计题目:
基于GUI界面的光照效果设计
:
学号:
指导教师:
娟
时间:
2010~2011 学年第一学期
人口学院信息科学系
课程设计题目
基于GUI界面的光照效果设计
课程设计目的及要求:
目的:
通过课程设计能熟练的应用MATLAB软件实现编程,了解程序开发过程中用到的一些基础知识,同时熟悉应用程序开发过程,熟悉GUI界面操作……要求:
制作一个曲面光照效果的演示界面,能分别实现:
1.通过下拉菜单或按钮组实现曲面形式、色彩图、光照模式和反射模式的选择;
2.通过三个滚动条用于选择X,Y,Z坐标以确定光源的位置;
3.通过三个滚动条和输入对话框改变视角。
4.加入按钮用于退出演示。
5.提供一些附加功能,比如坐标轴的显示,调用摄像机工具,调用打印预览功能,设置背景颜色,设置标题字体,超文档,消息框的调用等。
课程设计详细容:
一、方案设计
1.课程设计目标
用GUIDE编写一个简易的光照控制图形化界面
2.功能描述
光照控制界面能实现的功能
v绘出不同类型的三维图,能够从本地磁盘中打开图片文件
v选择各种色图或自定义色图
v选择不同的光照模式
v选择不能的反射模式
v控制视角
v控制光源位置
v设置背景颜色,标题字体
v附加一些辅助功能
v提供文档超
3.性能描述
(1)编程硬件环境
ØCPU:
Intel®Core(TM)2DuoCPU
Ø存:
2.00GB;
Ø硬盘:
500G;
(2)编程软件环境
Ø系统:
WindowsXPprofessional
ØMatlab版本:
2010a
二、GUI界面设计
总体样式为:
1:
界面设计
(1)建立一个坐标轴,用于显示图形
(2)设置4个pop-upmenu,用于设置光照效果
(3)设置5个slider和5个edittext,分别控制视角和光源。
(4)设置三个按钮,分别用于设置背景颜色,设置标题字体,退出
(5)设置一个框架(panel),在框架里放入4个检查盒(checkbox),
(6)分别在axis,pop-upmenu,slider,button,panel,checkbox中设置如上图所示的属性
(7)最后再加入一个statictext,加入标题。
2:
菜单设计
设计级联菜单:
如图所示,详情请见程序
三、编程(代码过多,详情请见程序)
functionvarargout=light_demo(varargin)
gui_Singleton=1;
gui_State=struct('gui_Name',mfilename,...
'gui_Singleton',gui_Singleton,...
'gui_OpeningFcn',light_demo_OpeningFcn,...
'gui_OutputFcn',light_demo_OutputFcn,...
'gui_LayoutFcn',[],...
'gui_Callback',[]);
ifnargin&&ischar(varargin{1})
gui_State.gui_Callback=str2func(varargin{1});
end
ifnargout
[varargout{1:
nargout}]=gui_mainfcn(gui_State,varargin{:
});
else
gui_mainfcn(gui_State,varargin{:
});
end
functionlight_demo_OpeningFcn(hObject,eventdata,handles,varargin)
handles.output=hObject;
guidata(hObject,handles);
functionvarargout=light_demo_OutputFcn(hObject,eventdata,handles)
varargout{1}=handles.output;
--------------------------------------------------------------------
functionUntitled_20_Callback(hObject,eventdata,handles)
prompt={'输入方位角','输入俯仰角'};
title='视角控制';
lines=[11]';
answer1=inputdlg(prompt,title,lines);
a=answer1{1,1};b=answer1{2,1};
view(a,b)
functionUntitled_4_Callback(hObject,eventdata,handles)
[FileName,PathName]=uigetfile({'*.jpg;*.png;*.tif;*.gif','所有图片文件';...
'*.*','所有文件'},'选择图片文件(只可单选)注意导入后其他功能不可用',...
'C:
\DocumentsandSettings\Administrator\MyDocuments\MyPictures\');
a=imread([PathName,FileName]);
imshow(a);
functionUntitled_5_Callback(hObject,eventdata,handles)
[filename,pathname]=uiputfile({'*.jpg;*.tif;*.png;*.gif','所有图片文件';...
'*.*','所有文件'},'保存文件',...
'C:
\DocumentsandSettings\Administrator\MyDocuments\MyPictures\');
functionUntitled_6_Callback(hObject,eventdata,handles)
[filename,pathname]=uiputfile({'*.jpg;*.tif;*.png;*.gif','所有图片文件';...
'*.*','所有文件'},'图片另文件',...
'C:
\DocumentsandSettings\Administrator\MyDocuments\MyPictures\');
functionUntitled_10_Callback(hObject,eventdata,handles)
surf(peaks);
shadinginterp
light('Position',[-3-21]);
axisoff
functionUntitled_11_Callback(hObject,eventdata,handles)
sphere(30);
shadinginterp
light('Position',[-3-21]);
axisoff
functionUntitled_12_Callback(hObject,eventdata,handles)
membrane
shadinginterp
light('Position',[-3-21]);
axisoff
functionUntitled_13_Callback(hObject,eventdata,handles)
[x,y]=meshgrid(-4:
.1:
4);
r=sqrt(x.^2+y.^2)+eps;
z=sinc(r);
surf(x,y,z)
shadinginterp
light('Position',[-3-21]);
axisoff
functionUntitled_14_Callback(hObject,eventdata,handles)
[x,y]=meshgrid([-1.5:
.3:
1.5],[-1:
0.2:
1]);
z=sqrt(4-x.^2/9-y.^2/4);
surf(x,y,z);
shadinginterp
light('Position',[-3-21]);
axisoff
functionUntitled_15_Callback(hObject,eventdata,handles)
t=0:
pi/12:
3*pi;
r=abs(exp(-t/4).*sin(t));
[x,y,z]=cylinder(r,30);
surf(x,y,z);
shadinginterp
light('Position',[-3-21]);
axisoff
functionUntitled_21_Callback(hObject,eventdata,handles)
colormap(jet)
functionUntitled_22_Callback(hObject,eventdata,handles)
colormap(hsv)
functionUntitled_23_Callback(hObject,eventdata,handles)
colormap(hot)
functionUntitled_24_Callback(hObject,eventdata,handles)
colormap(cool)
functionUntitled_25_Callback(hObject,eventdata,handles)
colormap(spring)
functionUntitled_26_Callback(hObject,eventdata,handles)
colormap(summer)
functionUntitled_27_Callback(hObject,eventdata,handles)
colormap(autumn)
functionUntitled_28_Callback(hObject,eventdata,handles)
colormap(winter)
functionUntitled_29_Callback(hObject,eventdata,handles)
colormap(gray)
functionUntitled_30_Callback(hObject,eventdata,handles)
colormap(bone)
functionUntitled_31_Callback(hObject,eventdata,handles)
colormap(copper)
functionUntitled_32_Callback(hObject,eventdata,handles)
colormap(pink)
functionUntitled_33_Callback(hObject,eventdata,handles)
colormap(lines)
functionUntitled_36_Callback(hObject,eventdata,handles)
functionUntitled_34_Callback(hObject,eventdata,handles)
colormapeditor
functionUntitled_45_Callback(hObject,eventdata,handles)
a=msgbox('Matlab课程设计版本1.0010632114岩','岩');
b=findobj(a,'type','text');
c=findobj(a,'type','pushbutton');
set(b,'fontsize',24,'unit','normal');
set(c,'visible','off');
set(a,'resize','on');
set(a,'position',[260260450200]);
functionUntitled_46_Callback(hObject,eventdata,handles)
winopen('rocklee.docx')
functionUntitled_47_Callback(hObject,eventdata,handles)
msgbox('QQ370675109E-mail.rockleerocklee163.','我的联系方式')
functionUntitled_41_Callback(hObject,eventdata,handles)
materialshiny
functionUntitled_42_Callback(hObject,eventdata,handles)
materialdull
functionUntitled_43_Callback(hObject,eventdata,handles)
materialmetal
functionUntitled_44_Callback(hObject,eventdata,handles)
materialdefault
functionUntitled_37_Callback(hObject,eventdata,handles)
lightingflat
functionUntitled_38_Callback(hObject,eventdata,handles)
lightinggouraud
functionUntitled_39_Callback(hObject,eventdata,handles)
lightingphong
functionUntitled_40_Callback(hObject,eventdata,handles)
lightingnone
functionpopupmenu1_Callback(hObject,eventdata,handles)
val=get(hObject,'value');
switchval
case1
surf(peaks);
case2
sphere(30);
case3
membrane
case4
[x,y]=meshgrid(-4:
.1:
4);
r=sqrt(x.^2+y.^2)+eps;
z=sinc(r);
surf(x,y,z)
case5
[x,y]=meshgrid([-1.5:
.3:
1.5],[-1:
0.2:
1]);
z=sqrt(4-x.^2/9-y.^2/4);
surf(x,y,z);
case6
t=0:
pi/12:
3*pi;
r=abs(exp(-t/4).*sin(t));
[x,y,z]=cylinder(r,30);
surf(x,y,z);
end
shadinginterp
light('Position',[-3-21]);
axisoff
functionpopupmenu1_CreateFcn(hObject,eventdata,handles)
ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
functionpopupmenu2_Callback(hObject,eventdata,handles)
val=get(hObject,'value');
switchval
case1
colormap(jet)
case2
colormap(hsv)
case3
colormap(hot)
case4
colormap(cool)
case5
colormap(spring)
case6
colormap(summer)
case7
colormap(autumn)
case8
colormap(winter)
case9
colormap(gray)
case10
colormap(bone)
case11
colormap(copper)
case12
colormap(pink)
case13
colormap(lines)
case14
colormapeditor
end
functionpopupmenu2_CreateFcn(hObject,eventdata,handles)
ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
functionpopupmenu3_Callback(hObject,eventdata,handles)
val=get(hObject,'value');
switchval
case1
lightingflat
case2
lightinggouraud
case3
lightingphong
case4
lightingnone
end
functionpopupmenu3_CreateFcn(hObject,eventdata,handles)
ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
functionpopupmenu4_Callback(hObject,eventdata,handles)
val=get(hObject,'value');
switchval
case1
materialshiny
case2
materialdull
case3
materialmetal
case4
materialdefault
end
functionpopupmenu4_CreateFcn(hObject,eventdata,handles)
ifispc&&isequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor','white');
end
functionslider1_Callback(hObject,eventdata,handles)
functionslider1_CreateFcn(hObject,eventdata,handles)
ifisequal(get(hObject,'BackgroundColor'),get(0,'defaultUicontrolBackgroundColor'))
set(hObject,'BackgroundColor',[.9.9.9]);
end
课程设计总结及体会:
在这次课程设计中,可以说是经历了无数的挫折与失败:
反反复复的调试,反反复复的失败,一次又一次的挑战着我的意志,不过,最后,已成过眼云烟。
首先,我认为一个好的程序不应该只有单单的一项功能,而有着很多使用辅助的功能,所以我在程序里加了坐标轴控制,视角控制,文档键连等功能。
而且,好的程序应该与用户有着良好的沟通性,所以我在菜单下加入了视角控制的输入框,让用户自行输入;在文件菜单下加入了打开图片,保存图片,打印预览功能等。
通过这次课程设计,我深刻理解了MATLAB强大的函数命令,不想其他语言C,VB等那样代码复杂度高。
比如我编写一个打开文件的代码,在VB里是这样实现的:
首先先得到文件的路径,然后再判断路径是否为根目录或不是,然后判断是否要加上‘/’这符号,然后才能利用这个路径变量。
然而在MATLAB中,只需要用uigetfile得到[FileName,PathName],然后再利用imread读入在用imshow显示就行了,代码简单,实现的功能强大,让我深深地体会到MATLAB中矩阵运算的速度和效率!
然而,MATLAB之路还没走完,或者说才刚刚开始,里面的容太多了。
各种模拟,各种函数,各种工具箱,我希望自己会在下个学期的课程里更深刻的理解和掌握MATLAB,未来之路仍很漫长。
学生(签字)
_____年_____月_____日
指导教师评语:
课程设计成绩:
指导教师(签字)_______________
_____年_____月_____日
教研室意见:
教研室主任(签字)
_____年_____月_____日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 报告 范例
![提示](https://static.bingdoc.com/images/bang_tan.gif)