matlab图形用户界面设计(一)ppt课件.ppt

matlab图形用户界面设计(一)ppt课件.ppt

ID:59416515

大小:261.50 KB

页数:51页

时间:2020-09-19

上传者:U-5097
matlab图形用户界面设计(一)ppt课件.ppt_第1页
matlab图形用户界面设计(一)ppt课件.ppt_第2页
matlab图形用户界面设计(一)ppt课件.ppt_第3页
matlab图形用户界面设计(一)ppt课件.ppt_第4页
matlab图形用户界面设计(一)ppt课件.ppt_第5页
资源描述:

《matlab图形用户界面设计(一)ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

matlab图形用户界面设计【本章学习目标】●了解图形对象和图形句柄的基本概念。●掌握图形对象属性的基本操作。●掌握利用图形对象进行绘图操作的方法。●掌握GUI开发环境(GUIDE)的使用方法。●掌握各种控件的属性和创建方法。●掌握菜单设计的方法。●掌握回调函数的使用方法。* MATLAB的图形是由不同图形对象(如坐标轴、曲线、曲面或文字等)组成的。MATLAB系统给每个图形对象分配一个标识符,称为句柄,以后可以通过该句柄获取或设置该图形对象的属性。MATLAB的图形系统是面向对象的,图形对象是MATLAB为了描述具有类似特征的图形元素而定义的具有一些公共属性的抽象的元素集合,是用于显示图形和制作用户界面的基本要素。* 6.1.1.1图形对象MATLAB的图形对象包括图形窗口、坐标轴、用户界面、曲线、曲面、文字、图像等。在MATLAB中,每一个具体的图形都是由若干个不同的图形对象组成的。图形对象是有层次的,其层次结构如下页图所示。图形窗口是根对象的子对象,坐标轴和用户界面对象是图形窗口的子对象,曲线、曲面、文字等是坐标轴的子对象。* * 6.1.1.2图形对象句柄MATLAB在创建每一个图形对象时,都为该对象分配唯一的一个值,称其为图形对象句柄(Handle),它是图形对象的唯一标识符。根对象的句柄值为0;图形窗口对象的句柄值为一正整数,显示在该窗口的标题栏;其他图形对象的句柄为双精度浮点数。MATLAB提供了若干个函数用于获取已有图形对象的句柄,较为常用的函数如下页表所示。* 函数功能gcf获取当前图形窗口的句柄(getcurrentfigure)gca获取当前坐标轴的句柄(getcurrentaxis)gco获取最近被选中的图形对象的句柄(getcurrentobject)findobj按照指定的属性来获取图形对象的句柄* 【例6.1】绘制曲线并查看有关对象的句柄。x=linspace(0,2*pi,30);y=sin(x);h0=plot(x,y,'rx')%曲线对象的句柄h0=171.0016h1=gcf%图形窗口句柄h1=1h2=gca%坐标轴句柄h2=170.0017h3=findobj(gca,'Marker','x')%坐标轴上曲线的句柄h3=171.0016* 图形对象的句柄由系统自动分配,每次分配的值不一定相同。在获取对象的句柄后,可以通过句柄来设置或获取对象的属性。* .* 2.属性的操作(1)设置图形对象属性用户可以通过set函数重新设置图形对象属性,其调用格式为set(句柄,属性名1,属性值1,属性名2,属性值2,…)其中“句柄”用于指明要操作的图形对象。如果在调用set函数时省略全部属性名和属性值,则将显示出句柄所有的允许属性。* (2)获取图形对象属性用户可通过get函数获取图形对象的属性值,其调用格式为V=get(句柄,属性名)其中V是返回的属性值。如果在调用get函数时省略属性名,则将返回句柄所有的属性值。例如,以下命令用来获得上述曲线的颜色属性值:col=get(h,'Color');* 3.对象的公共属性图形对象具有各种各样的属性,有些属性是所有对象共同具备的,有些属性则是各对象所特有的。这里先介绍对象常用的公共属性。(1)Children属性。该属性的取值是该对象所有子对象的句柄组成的一个向量。(2)Color属性。该属性的取值是一个颜色值,既可以用字符表示,也可以用RGB三元组表示。(3)Parent属性。该属性的取值是该对象的父对象的句柄。* (4)Tag属性。该属性的取值是一个字符串,它相当于给该对象定义了一个标签。定义了Tag属性后,在任何程序中都可以通过findobj函数获取该标签所对应图形对象的句柄。例如,hf = findobj(0,'Tag','Flag1')将在屏幕对象及其子对象中寻找Tag属性为Flag1的对象,并返回句柄。(5)Type属性。表示该对象的类型,该属性的值是只读的。* (6)UserData属性。该属性的取值是一个矩阵,默认值为空矩阵。在程序设计中,可以将一个与图形对象有关的比较重要的数据存储在这个属性中,借此可以达到传递数据的目的。具体做法是,先用set函数给某一句柄添加一些附加数据(一个矩阵),如果想使用这样的矩阵,再用get函数调用出来。(7)Visible属性。该属性的取值是on(默认值)或off,决定着图形对象是否在图形窗口中显示出来。* 【例6.2】在同一坐标下绘制红、绿两条不同的曲线,然后获取绿色曲线的句柄,并利用句柄更改绿色曲线的样式。x=0:pi/50:2*pi;y=sin(x);z=cos(x);plot(x,y,'r',x,z,'g');%绘制两根不同曲线Hl=get(gca,'Children');%获取两曲线句柄向量Hlfork=1:size(Hl)ifget(Hl(k),'Color')==[010]%[010]代表绿色Hlg=Hl(k);%获取绿色线条句柄endendpause%便于观察设置前后的效果set(Hlg,'LineStyle',':','Marker',‘h');%对绿色线条进行设置* 除根对象外,所有图形对象都可以由与之同名的低层函数创建。6.1.2.1图形窗口对象创建图形窗口对象使用figure函数,其调用格式如下。●句柄变量 = figure(属性名1,属性值1,属性名2,属性值2,…)●figure(窗口句柄)* 使用第1种格式时,按指定的属性来创建图形窗口。使用第2种格式时,若句柄是已经存在的某图形窗口句柄,则使该图形窗口成为当前图形窗口,并在此输出;若句柄是不存在的图形窗口句柄,则使用该句柄创建一个新的图形窗口后,在新的图形窗口输出。figure函数不带参数时,按MATLAB默认的属性值创建图形窗口。* 要关闭图形窗口,使用close函数,其调用格式为close(窗口句柄)另外,closeall命令可以关闭所有的图形窗口,clf命令则是清除当前图形窗口的内容,但不关闭窗口。* 图形窗口常用属性.* (5)Position属性。该属性的取值是一个由4个元素构成的向量,其形式为[n1,n2,n3,n4]。这个向量定义了图形窗口在屏幕上的位置和大小,其中n1和n2分别为对象左下角的横纵坐标值,n3和n4分别为图形窗口的宽度和高度。它们的单位由Units属性决定。(6)Units属性。该属性的取值可以是下列字符串中的任何一种:normalized(相对单位,为默认值)、pixel(像素)、inches(英寸)、centimeters(厘米)和points(磅)。* (7)对键盘及鼠标响应属性。MATLAB允许对键盘和鼠标键按下这样的动作进行响应,这类属性有KeyPressFcn(键盘键按下响应)、WindowButtonDownFcn(鼠标键按下响应)、WindowButtonMotionFcn(鼠标移动响应)、WindowButtonUpFcn(鼠标键释放响应)等,这些属性所对应的属性值可以为用MATLAB编写的函数名或命令名,表示一旦键盘键或鼠标键按下之后,将自动调用给出的函数或命令。* 【例6.3】建立一个图形窗口。该图形窗口没有菜单条,标题名称为“我的图形窗口”,该窗口位于屏幕的左下角,其宽度和高度分别为450像素和250像素,且当用户从键盘按下任意一个键时,将在该图形窗口绘制出正弦曲线。x=linspace(0,2*pi,60);y=sin(x);hf=figure(‘Position’,[5,5,360,210],‘MenuBar’,‘none’,...‘Name’,‘我的图形窗口’,‘NumberTitle’,‘off’,...'KeyPressFcn','plot(x,y);axis([0,2*pi,-1,1]);');* 6.1.2.2坐标轴坐标轴是在图形窗口中定义的一个画图区域。坐标轴对象是图形窗口的子对象,在某个图形窗口中输出图形图像,实质上是指在该图形窗口的当前坐标轴中输出图形图像。建立坐标轴对象使用axes函数,其调用格式如下。●句柄变量=axes(属性名1,属性值1,属性名2,属性值2,…)●axes或句柄变量=axes* 调用axes函数用指定的属性在当前图形窗口创建坐标轴,并将其句柄赋给左边的句柄变量。函数不带参数表示按MATLAB默认的属性值在当前图形窗口创建坐标轴。用axes函数建立坐标轴之后,还可以调用axes函数将其设定为当前坐标轴,且坐标轴所在的图形窗口自动成为当前图形窗口,调用格式为axes(坐标轴句柄)* MATLAB常用属性(1)Box属性。该属性的取值是on或off(默认值),它决定坐标轴是否带有边框。(2)GridLineStyle属性。该属性的取值可以是':'(默认值)、'-'、'-.'、'--'或'none',该属性定义网格线的类型。(3)Title属性。该属性的取值是坐标轴标题文字对象的句柄,可以通过该属性对坐标轴标题文字对象进行操作。例如,要改变坐标轴标题的颜色,可执行命令:h=get(gca,'Title');%获得坐标轴的标题文字对象句柄set(h,‘Color’,‘r’);%设置标题为红色* (4)坐标轴刻度属性。这类属性包括以下内容。●XLabel、YLabel、ZLabel属性。这3种属性的取值分别是x、y、z轴说明文字的句柄。其操作与Title属性相同。例如,要设置x轴文字说明,可使用命令:h=get(gca,'XLabel');%获得x轴文字对象句柄set(h,'String','ValuesofXaxis');%设置x轴文字说明●XLim、YLim、ZLim属性。这3种属性的取值都是具有2个元素的数值向量,分别定义各坐标轴的下限和上限,默认值为[0,1]。以前介绍的axis函数实际上是对这些属性的直接赋值。* ●XScale、YScale、ZScale属性。这3种属性的取值都是'linear'(默认值)或'log',这些属性定义各坐标轴的刻度类型。●XTickLabel、YTickLabel、ZTickLabel属性。这3种属性的取值都是字符串矩阵,分别用字符串替换x、y、z轴默认的数字型刻度线标签。例如,将坐标轴的x轴刻度线标签改为一些字母,可执行以下命令:set(gca,'XTickLabel',['A';'B';'C';'D';'E';'F']);●Xdir、Ydir、Zdir属性。这3种属性的取值都是'normal'(默认值)或'reverse',分别定义x、y、z轴的方向。* (5)View属性。该属性的取值是2个元素的数值向量,定义视点。(6)Position属性和Units属性。定义坐标轴左下角在图形窗口上的位置(以图形窗口左下角为原点)。* (7)字体属性。MATLAB允许对坐标轴标注的字体进行设置,这类属性有FontName(字体名称)、FontWeight(字形)、FontSize(字体大小)、FontUnits(字体大小单位)、FontAngle(字体角度)等。FontName属性的取值是系统支持的一种字体名或'FixedWidth';FontSize属性的单位由FontUnits属性决定;FontWeight属性的取值可以是'normal'(默认值)、'bold'、'light'或'demi';FontAngle的取值可以是'normal'(默认值)、'italic'或'oblique'。* 【例6.4】利用坐标轴对象实现图形窗口的任意分割。clf;%清除图形窗口中的内容[x,y]=meshgrid(0:0.1:pi/2,0:0.1:pi);z=sin(x.^2)+cos(y.^2);axes('Position',[0.05,0.6,0.3,0.3]);plot(x,z);set(gca,'XDir','reverse')axes('Position',[0.45,0.6,0.5,0.35]);plot3(x,y,z);set(gca,'view',[75,15],'ZLim',[-0.5,1.8])axes('Position',[0.1,0.05,0.8,0.5]);plot3(x,y,z);gridon;* 6.1.3.1曲线对象曲线对象是坐标轴的子对象,它既可以定义在二维坐标系中,也可以定义在三维坐标系中。建立曲线对象使用line函数,其调用格式如下。●句柄变量=line(x,y,属性名1,属性值1,属性名2,属性值2,…)●句柄变量=line(x,y,z,属性名1,属性值1,属性名2,属性值2,…)其中,对x、y、z的含义和用法与高层曲线函数plot、plot3等一样,其余的选项与前面介绍过的figure和axes函数类似。* 每个曲线对象也具有很多属性,除Color、Parent等公共属性外,其他常用属性如下。(1)LineStyle属性。定义线型。(2)LineWidth属性。定义线宽,默认值为0.5磅。(3)Marker属性。定义数据点标记符号,默认值为none。(4)MarkerSize属性。定义数据点标记符号的大小,默认值为6磅。(5)XData、YData、ZData属性。这3种属性的取值都是数值向量或矩阵,分别代表曲线对象的3个坐标轴数据。* 【例6.5】利用曲线对象绘制曲线y=e−tsin2πt。t=0:pi/100:pi;y=sin(2*pi*t).*exp(-t);figure('Position',[30,100,480,320]);axes('GridLineStyle','-.','XLim',[0,pi],'YLim',[-0.6,1]);h=get(gca,'Title');set(h,'String','y=e^{-t}sin(2{pi}t)');line('XData',t,'YData',y,'Marker','*');gridon* 6.1.3.2曲面对象曲面对象也是坐标轴的子对象。建立曲面对象使用surface函数,其调用格式为句柄变量=surface(x,y,z,属性名1,属性值1,属性名2,属性值2,…)其中,对x、y、z的含义和用法与高层曲面函数mesh、surf等一样,其余的选项与前面介绍过的figure、axes等函数类似。每个曲面对象也具有很多属性,除公共属性外,其他常用属性如下。(1)EdgeColor属性。定义曲面网格线的颜色或着色方式。取值是代表某颜色的字符或RGB值,还可以是flat、interp或none,默认为黑色* (2)FaceColor属性。定义曲面网格片的颜色或着色方式。取值是代表某颜色的字符或RGB值,还可以是flat(默认值)、interp或none。(3)LineStyle属性。定义曲面网格线的线型。(4)LineWidth属性。定义曲面网格线的线宽,默认值为0.5磅。(5)Marker属性。定义曲面数据点标记符号,默认值为none。(6)MarkerSize属性。定义曲面数据点标记符号的大小,默认值为6磅。(7)XData、YData、ZData属性。这3种属性的取值都是数值向量或矩阵,分别代表曲面对象的3个坐标轴数据。* 【例6.6】利用曲面对象绘制三维曲面z=x2 − 2y2。[x,y]=meshgrid(-10:0.5:10);z=x.^2-2.*y.^2;hs=surface(x,y,z,'FaceColor','w','EdgeColor','flat');gridon;set(gca,'view',[-37.5,25]);%设置视点%设置标题h=get(gca,'Title');set(h,'String','网格曲面','FontSize',8,'Position',[0.4,0.9]);pauseset(hs,'FaceColor','flat');set(get(gca,'Title'),'String','着色曲面');* 8.3.3文本对象文本对象主要用于给图形添加文字标注。在文本对象中除使用一般的文字以外,还允许使用LaTeX文本。使用text函数可以根据指定位置和属性值添加文字说明,并保存句柄。该函数的调用格式为句柄变量=text(x,y,z,'说明文字',属性名1,属性值1,属性名2,属性值2,…)其中,x、y、z为双精度型,定义文本对象在坐标轴上的位置,长度单位与当前图形的长度单位相同。说明文字中除使用标准的ASCII字符外,还可使用LaTeX格式的控制字符。例如:h=text(0.5,0.5,'{gamma}={rho}^2');将得到标注效果:γ=ρ2。* 文本对象的其他常用属性如下。(1)String属性。该属性的取值是字符串或字符串矩阵,它记录着文字标注的内容。(2)Interpreter属性。该属性的取值是latex(默认值)、tex或none,该属性控制对文字标注内容的解释方式,即LaTeX方式、TeX方式或ASCII方式。* (3)字体属性。这类属性有FontName(字体名称)、FontWeight(字形)、FontSize(字体大小)、FontUnits(字体大小单位)、FontAngle(字体角度)等。FontName属性的取值是系统支持的一种字体名或'FixedWidth';FontSize属性定义文本对象的大小,其单位由FontUnits属性决定,默认值为10磅;FontWeight属性的取值可以是'normal'(默认值)、'bold'、'light'或'demi';FontAngle的取值可以是'normal'(默认值)、'italic'或'oblique'。* (4)Rotation属性。该属性的取值是数值量,默认值为0。它定义文本对象的旋转角度,取正值时表示逆时针方向旋转,取负值时表示顺时针方向旋转。(5)BackgroundColr和EdgeColor属性。设置文本对象的背景颜色和边框线的颜色,可取值为none(默认值)或ColorSpec。(6)HorizontalAlignment属性。该属性控制文本与指定点的相对位置,其取值为left(默认值)、center或right。* 【例6.7】利用曲线对象绘制曲线并利用文本对象完成注。x=-pi:.1:pi;y1=sin(x);y2=cos(x);h=line(x,y1,'LineStyle',':');line(x,y2,'LineStyle','--','Color','b');xlabel('-pileqThetaleqpi')ylabel('sin(Theta)')title('Plotofsin(Theta)')text(-pi/4,sin(-pi/4),'leftarrowsin(-pidiv4)','FontSize',12)set(h,'Color','r','LineWidth',2)%改变曲线1的颜色和线宽* 8.3.4其他核心对象1.补片对象补片对象是由一个或多个多边形构成的。补片对象特别适合为现实世界中的事物建立模型。补片对象可以用fill、fill3、contours和patch函数创建。在MATLAB中,创建补片对象的低层函数是patch函数,通过定义多边形的顶点和多边形的填充颜色来实现。* patch函数的调用格式为●patch(x,y,color)●patch(x,y,z,color)●patch(属性名1,属性值1,属性名2,属性值2,…)在前两种格式中,x、y、z是向量或矩阵,定义多边形顶点。若x、y、z为m×n大小的矩阵,则每一行的元素构成一个多边形。color指定填充颜色,若f为标量,补片对象用单色填充;若f为向量,补片对象用不同颜色填充各多边形。每个多边形用不同颜色,则可以产生立体效果。第3种格式以指定属性的方式创建补片对象。* 补片对象的其他常用属性(1)Vertices和Faces属性。其取值都是一个m×n大小的矩阵。Vertices属性定义各个顶点,每行是一个顶点的坐标。Faces属性定义图形由m个多边形构成,每个多边形有n个顶点,其每行的元素是顶点的序号(对应Vertices矩阵的行号)。(2)FaceVertexCData属性。当使用Faces和Vertices属性创建补片对象时,该属性用于指定补片颜色。(3)FaceColor属性。设置补片对象的填充样式,可取值为RGB三元组、'none'、'flat'和'interp'(线性渐变)。(4)XData、YData和ZData属性。其取值都是向量或矩阵,分别定义各顶点的x、y、z坐标。若它们为矩阵,则每一列代表一个多边形。* 【例6.8】用patch函数绘制一个长方体。长方体由6个面构成,每面有4个顶点。可以把一个面当成一个多边形处理,程序如下:clf;k=2;%k为长宽比%X、Y、Z的每行分别表示各面的四个点的x、y、z坐标X=[0110;1111;1001;0000;1001;0110]';Y=k*[0000;0110;1111;1001;0011;0011]';Z=[0011;0011;0011;0011;0000;1111]';%生成和X同大小的颜色矩阵tcolor=rand(size(X,1),size(X,2));patch(X,Y,Z,tcolor,'FaceColor','interp');view(-37.5,35);axisequaloff* * 2.矩形对象在MATLAB中,矩形、椭圆以及二者之间的过渡图形,如圆角矩形都称为矩形对象。创建矩形对象的低层函数是rectangle,该函数调用格式为rectangle(属性名1,属性值1,属性名2,属性值2,…)除公共属性外,矩形对象的其他常用属性如下。(1)Position属性。与坐标轴的Position属性基本相同,相对坐标轴原点定义矩形的位置。(2)Curvature属性。定义矩形边的曲率。(3)LineStyle属性。定义线型。(4)LineWidth属性。定义线宽,默认值为0.5磅。(5)EdgeColor属性。定义边框线的颜色。* 【例6.9】在同一坐标轴上绘制矩形、圆角矩形、椭圆和圆。rectangle('Position',[0,0,40,30],'LineWidth',2,'EdgeColor','r')rectangle('Position',[5,5,20,30],'Curvature',0.4,'LineStyle','-.')rectangle('Position',[10,10,30,20],'curvature',[1,1],'linewidth',2)rectangle('Position',[0,0,30,30],'Curvature‘,[1,1],'EdgeColor','b')axisequal* 3.发光对象发光对象定义光源,这些光源会影响坐标轴中所有patch对象和surface对象的显示效果。MATLAB提供light函数创建发光对象,其调用格式为light(属性名1,属性值1,属性名2,属性值2,…)发光对象有如下3个重要属性。(1)Color属性。设置光的颜色。(2)Style属性。设置发光对象是否在无穷远,可取值为infinite(默认值)或local。(3)Position属性。该属性的取值是数值向量,用于设置发光对象与坐标轴原点的距离。发光对象的位置与Style属性有关,若Style属性为local,则设置的是光源的实际位置;若Style属性为infinite,则设置的是光线射过来的方向。* 【例6.10】光照处理后的球体。[X,Y,Z]=sphere(30);surface(X,Y,Z,'FaceColor','flat','EdgeColor','none');shadinginterp;view(-37.5,30)lightinggouraudaxissquarerotate3Donlight('Position',[1-12],'Style','infinite','color','yellow');* *

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭