实验五绘图与GUI设计.ppt

上传人:牧羊曲112 文档编号:5961508 上传时间:2023-09-08 格式:PPT 页数:37 大小:1.48MB
返回 下载 相关 举报
实验五绘图与GUI设计.ppt_第1页
第1页 / 共37页
实验五绘图与GUI设计.ppt_第2页
第2页 / 共37页
实验五绘图与GUI设计.ppt_第3页
第3页 / 共37页
实验五绘图与GUI设计.ppt_第4页
第4页 / 共37页
实验五绘图与GUI设计.ppt_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《实验五绘图与GUI设计.ppt》由会员分享,可在线阅读,更多相关《实验五绘图与GUI设计.ppt(37页珍藏版)》请在三一办公上搜索。

1、Matlab基础应用,1,主讲人:李秀滢电子信息工程系,第五讲 计算可视化与GUI设计,2,一.计算的可视化,MATLAB具有强大的二维和三维绘图功能,尤其擅长于各种科学计算结果的可视化。计算的可视化可以将杂乱的数据通过图形来表示,从中观察出其内在的联系。二维曲线的绘制三维图形的绘制图形窗口的功能,3,1 绘制曲线或曲面的一般步骤,!,!,4,2 二维曲线的绘制,语法:绘制以y为纵坐标的二维曲线plot(y)说明:1)当y为向量时,系统根据y向量的元素序号自动生成从1开始的向量。2)当y为m*n的矩阵时,命令为矩阵的每一列画一条曲线。3)当y为复向量时,命令以实部为横坐标,虚部为纵坐标。绘制以

2、x为横坐标、y为纵坐标的二维曲线。plot(x,y)说明:1)当x,y都为向量时,x和y长度必须相等。2)当x为向量、y为矩阵时,则x的长度与矩阵y的行数或列数必须相等。若x长度与y矩阵行数相等,则向量x与矩阵y的每一列向量对应画一条曲线。3)若x是矩阵,而y是向量,则y长度必须等于x的行数或列数,绘制同前。4)若x和y都是矩阵,则大小必须相同。矩阵x的每列和y的每列画一条曲线。绘制多条二维曲线plot(x1,y1,x2,y2,.)说明:每对矩阵(xi,yi)均按前面规则进行解释绘制。,2.1 基本绘图命令,5,2.2 曲线的线型、颜色和数据点形,语法:plot(x,y,s)说明:s为类型说明

3、字符串参数。它可以是线段类型、颜色和数据点形3种类型符号的组合。,6,2.3 多个图形绘制的方法,指定图形窗口语法:figure(n)%产生新图形窗口说明:如果该窗口不存在,则产生新图形窗口并设置为当前窗口。同一窗口多个子图语法:subplot(m n k)%使子图中的第k幅成为当前图说明:将图形窗口划分为m*n幅子图,k是当前子图编号。同一窗口多次叠绘语法:hold on%使当前坐标系和图形保留 hold off%使当前坐标系和图形不保留,7,2.4 设置坐标轴和文字标注,坐标轴控制分格线语法:grid on/off%显示/不显示分格线说明:不显示分格线是默认设置,分格线疏密由坐标刻度决定。

4、,8,2.4 设置坐标轴和文字标注(续),文字标注(1)添加图名语法:title(s)%书写图名(2)添加坐标轴名语法:xlabel(s)%横坐标轴名 ylabel(s)%纵坐标轴名(3)添加图例语法:legend(s,pos)%在pos指定位置添加图例注释s(4)添加文字注释语法:text(xt,yt,s)%在(xt,yt)坐标处添文字注释。,9,例1:绘制sin(x),cos(x)曲线,并添加坐标轴、注释等修饰。,figure(3)x=0:0.1:2*pi;plot(x,sin(x)hold on%保留当前图形 axis(0,2*pi,-1,1)%设置坐标轴的范围 grid on%显示网格

5、 plot(x,cos(x),r-*)title(y1=sin(x),y2=cos(x)%添加标题 xlabel(x)%添加横坐标名 legend(sin(x),cos(x),4)%添加图例 text(pi,sin(pi),x=pi)%在pi,sin(pi)处添加 文字注释,10,3 三维图形绘制,3.1 绘制三维曲线命令,语法:plot3(x,y,z,s)plot3(x1,y1,z1,s1,x2,y2,z2,s2,)说明:x,y,z是同维向量时,绘制x,y,z为坐标的三维曲线;x,y,z为同维矩阵时,绘制三维曲线的条数等于矩阵的列数。s是指定线型、色彩、数据点形的字符串。例:x=0:0.1:

6、20*pi;plot3(x,sin(x),cos(x)%按系统默认设置绘图,11,3.2 绘制三维网线图和曲面图,三维网线图与曲面图是三维立体图,MATLAB中提供了mesh和surf命令来绘制。在数据准备上需要使用meshgrid命令构成xy平面上的自变量栅格点矩阵。产生以x,y向量为基准,x-y平面栅格点坐标值的矩阵语法:xx,yy=meshgrid(x,y)三维网线图语法:mesh(xx,yy,z)三维曲面图语法:surf(xx,yy,z),例2:x=linspace(-3,3,49);y=linspace(-3,3,49);x1,y1=meshgrid(x,y);z=3*(1-x1).

7、2.*exp(-(x1.2)-(y1+1).2)subplot(2,2,1);mesh(x1);title(x1 fig)subplot(2,2,2);mesh(y1);title(y1 fig)subplot(2,2,3);mesh(x1,y1,z);title(mesh fig)subplot(2,2,4);surf(x1,y1,z);title(surf fig),12,3.3 立体图形的控制,网格的隐藏语法:hidden off/on%显示/隐藏被遮盖的网格说明:默认情况下图形后面的网格会被图形遮盖。改变视角语法:view(az,el)%通过方位角和俯仰角改变视角。view(vx,vy

8、,vz)%通过直角坐标改变视角。曲面镂空通过将希望镂空的位置用nan来取代矩阵在该部分的数值。例3:,x,y,z=peaksz(5:20,10:30)=nansurf(x,y,z),13,3.4 色彩的控制,色彩表现在图形中非常重要,MATLAB中非常重视色彩的处理,它提供了丰富的色彩控制命令,同学们课下自学。色图色图的显示和处理 如:浓淡处理、亮度处理等。,14,4 特殊图形绘制,15,5 图形窗口的功能,Edit菜单,insert菜单,16,二.GUI(图形用户界面)程序设计,图形用户界面(GUI)程序就是通过窗口、选单、按钮、文字说明等对象构成一个美观的界面,提供用户利用鼠标或键盘方式指

9、挥后台程序实现某些功能。一个好的GUI能够使程序更加容易使用。它提供给用户一个常见的界面,还提供一些可操作的控件,如按钮、列表框、滑块和菜单等。创建一个MATLAB图形用户界面程序必须具备以下3个基本元素。(1)组件 图形化的组件,让用户看到该组件就知道怎样操作。(2)图形窗口GUI的每个组件都必须安排在图形窗口中,它像一个摆放各种器 械的容器(画布)。(3)回应只要执行GUI的单个图形组件,就必须有一个回应,17,实现GUI程序包括两个基本任务GUI界面的设计:即GUI的组件布局;GUI组件的编程:编写各组件的响应函数(回调函数)除此之外,GUI程序也可能需要保存发布,使开发的程序真正得到应

10、用。MATLAB提供了开发GUI程序的集成开发环境GUIDE,简化设计流程。在利用GUIDE编写程序时,该开发环境为用户生成两个文件。FIG文件:该文件包括用户GUI界面的所有组件对象(含图形窗口)及对象的属性。M文件:该文件包括用户所编写的所有的响应函数(回调函数),或用户定义的子函数。其不包含任何组件的布局信息。MATLAB的GUI程序的核心就是句柄图形对象的应用,对句柄图形对象的充分了解使GUI程序编写更加容易。,1 GUI程序设计要点,18,2 句柄图形对象,对象,MATLAB是一种面向对象的高级语言,其数据的可视化技术中的各种图形元素,都是抽象的图形对象的实例。将一个图形的每个组件都

11、看作一个对象,每个对象都有一独一无二的句柄(Handle),句柄是存取图形对象唯一标示。,19,句柄图形体系由若干个图形对象组成:,root(屏幕),figure(窗口),uicontrol(界面控件),axes(轴),uimenu(界面菜单),2.1 句柄图形体系,内核对象,20,图形对象的创建除了根屏幕外,绝大多数图形对象都由与之同名的命令创建,命令的格式及功能如下:,2.2 句柄图形对象的操作,21,对象句柄的获取(1)当前对象的获取语法:gcf%获取当前图形窗口句柄 gca%获取当前坐标轴句柄 gco%获取被鼠标最近单击对象的句柄。(2)查找对象语法:findobj%查找对象,获取指定

12、属性值的对象句柄。(3)追溯父对象和子对象句柄语法:get%获取已知对象句柄的父/子对象句柄。,2.2 句柄图形对象的操作(续),22,对象句柄的删除语法:delete(h_obj)%删除句柄对象和所有子对象。图形对象属性(property)的获取和设置(1)创建对象时设置属性 如:h_fig=figure(color,red,menubar,none,position,0,0,300,300)(2)用get函数获取属性值语法:C=get(h_obj,propertyName,)%获取句柄对象某属性的当前值(3)用set函数设置属性值语法:set(h_obj,propertyName,Valu

13、e,)%设置句柄对象属性值,2.2 句柄图形对象的操作(续),23,2.3 句柄图形对象的操作函数,24,3 图形用户界面(GUI)程序实现,MATLAB设计图形用户界面程序实现的方法有两种:使用GUI的开发环境(GUIDE,重点掌握)通过编写程序实现GUI程序包括两个基本任务GUI界面的设计:即GUI的组件布局;GUI组件的编程:编写各组件的响应函数(回调函数),25,3.1 图形用户界面(GUI)组成,图形窗口(figure),菜单(uimenu),控件(uicontrol)按钮选单按钮框架复选框文本标签文本编辑框滑动条下拉列表框列表框单选按钮,坐标轴控件(axes),下面介绍的是可视化G

14、UI开发环境的应用。,26,3.2 可视化GUI开发环境,27,3.3 创建菜单,在可视化界面窗口选择菜单项“tools”-”Menu Editor”就会出现选单编辑器或点击工具栏中的。,图(a)菜单编辑器 图(b)在新窗口创建菜单,3.3.1 菜单编辑器,28,参考句柄图形体系,其中界面选单用“uimenu”命令创建。语法:h_menu=uimenu(h_Parent,PropertyName,ProperValue,)说明:h_Parent为选单所在父对象句柄。,3.3.2 编程创建菜单,例2:创建上图(b)所示的选单h_fig=gcfh_menu=uimenu(h_fig,label,P

15、aint)%创建选单Painth_menu1=uimenu(h_menu,label,Circle)%创建Paint的子选单Circleh_menu2=uimenu(h_menu,label,Color)%创建Paint的子选单Colorh_menu21=uimenu(h_menu2,label,Red)%创建Color子选单Red h_menu22=uimenu(h_menu2,label,Blue)%创建Color子选单Blue,29,3.3.3 菜单的回调函数(callback),回调函数是字符串,可包含任何MATLAB的命令和M文件名,回调的作用是将字符串用“eval”执行,以实现选单

16、的功能。每个菜单项都会有一个回调函数,用于用户选中菜单项而进行的响应。,30,3.4 控件的使用,控件是界面组成的重要部分。MATLAB常用控件如下表。在“图形对象面板”中选中控件,拖放到“界面编辑面板”中。,31,控件的属性,创建控件后,需要对属性进行设置,常用属性如下。1)string属性:用于显示在控件上的字符串。2)enable属性:表示该控件是否有效。3)tooltipstring属性:当鼠标放在控件上时显示的提示信息。4)字体属性:包括fontname,fontsize等5)Tag属性:控件的标记,用于标示控件。属性编辑器通过选择菜单“View”-”Property Inspect

17、or”打开,或选中控件单击工具栏中的。,32,3.4.2 控件回调函数,每个控件的回调函数可能有多个,用于响应不同的操作事件。实现GUI程序,基本的机制就是对控件的回调函数编程。如创建一个“Push Button”控件后,在菜单“View-Object Callbacks”中就会出现如下五个函数。ButtonDownFcn:当鼠标右键单击控件时执行的函数。Callback:与控件相关的标准回调函数,实现的功能因控件的不同而不同。CreateFcn:当创建对象时执行的函数。DeleteFcn:当删除对象时执行的函数。KeyPressFcn:当键盘按下时执行的函数。选择各函数,打开M文件编辑器,出

18、现相关函数名的程序,在各函数中编写程序代码,完成各回调功能。,33,三.动画,MATLAB使科学计算与动画自然结合,实现完美效果。MATLAB中有许多动画程序:如travel、truss、lorenz等。MATLAB中产生动画的方式有两种:影片方式:以图像方式预存多个画面,再将这些画面逐帧播放。对象方式:保持图形窗口中大部分对象,只更新部分运动对象,使整幅图像有运动效果。,34,1 以电影方式产生动画,步骤:使用getframe命令抓取图形作为画面,每个画面以一个列向量的方式放置到存放整个电影的矩阵M中。使用movie(M,k)命令播放电影。可指定矩阵M播放的重复次数k。例子:使用电影动画,显

19、示二阶系统的时域波形。,35,2 以对象方式产生动画,须使用句柄图形的概念,所有的曲线或曲面均被视为对象,其中每个对象通过属性进行修改。产生动画效果的一般步骤:擦除旧对象产生相似但不同的新对象。刷新屏幕。,36,2 以对象方式产生动画(续),一般需修改的属性和操作的函数:对象的擦除属性:EraseMode EraseMode属性有以下几种取值:normal:计算整个画面的数据,重画整个图形。xor:将旧对象的点以xor的方式还原,即只画与屏幕色不一致的新对象点,擦除不一致的原对象点,这种方式不会擦除被擦对象下面的其他图像。background:将旧对象的点变成背景颜色,实现擦除,这种方式会擦除被擦对象下面的其他图像。none:保留旧对象的点,不做任何擦除,默认情况。对象的位置属性:xdata,ydataxdata:为一个向量,代表对象的x坐标值。ydata:为一个向量,代表对象的y坐标值。屏幕刷新函数:drawnow,37,谢谢大家!,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号