MATLAB图形句柄ppt课件.ppt_第1页
MATLAB图形句柄ppt课件.ppt_第2页
MATLAB图形句柄ppt课件.ppt_第3页
MATLAB图形句柄ppt课件.ppt_第4页
MATLAB图形句柄ppt课件.ppt_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第9章MATLAB图形句柄9.1图形对象及其句柄9.2图形对象属性9.3图形对象的创建,1,9.1图形对象及其句柄绘图函数将不同的曲线或曲面绘制在图形窗口中,而图形窗口由不同的对象(如坐标轴、曲线、曲面或文字等)组成的图形界面。Matlab给每个图形对象分配一个标识符,称为句柄。以后可以通过该句柄对该图形对象的属性进行设置,也可以获取有关的属性值,从而能够更加自主地绘制各种图形。1图形对象MATLAB的图形对象包括计算机屏幕、图形窗口、坐标轴、用户菜单、用户控件、曲线、曲面、文字、图像、光源、区域块和方框等。系统将每一个对象按树型结构组织起来。每个具体图形不必包含每个对象,但每个图形必须具备根屏幕和图形窗口。,2,3,4,5,2图形对象句柄MATLAB在创建每一个图形对象时,都为该对象分配唯一的一个值,称其为图形对象句柄(Handle)。句柄是图形对象的唯一标识符,不同对象的句柄不可能重复和混淆。计算机屏幕作为根对象由系统自动建立,其句柄值为0,而图形窗口对象的句柄值为一正整数,并显示在该窗口的标题栏,其他图形对象的句柄为浮点数。MATLAB提供了若干个函数用于获取已有图形对象的句柄,如:figure,line,text,surface,axes(xlabel,ylabel,zlabel,title),6,常用图形对象的句柄函数gcf获取当前图形窗口的句柄gca获取当前坐标轴的句柄例:绘制曲线并查看有关对象的句柄x=0:0.1*pi:2*pi;y=sin(x);h1=gcfh1=1h2=gcah2=151.0057,7,9.2图形对象属性1属性名与属性值MATLAB给每种对象的每一个属性规定了一个名字,称为属性名,而属性名的取值称为属性值。2属性的操作set函数的调用格式为:set(句柄,属性名1,属性值1,属性名2,属性值2,)其中句柄用于指明要操作的图形对象。如果在调用set函数时省略全部属性名和属性值,则将显示出句柄所有的允许属性。set(0)set(gcf)set(gca),8,例:绘制二维曲线,通过选择不同的选项可以设置曲线的颜色、线型和数据点的标记符号。x=0:pi/10:2*pi;h=plot(x,sin(x);pauseset(h,color,r,linestyle,:,marker,P);,9,获取句柄的属性值get函数:get(句柄,属性名)如果在调用get函数时省略属性名,则将返回句柄的所有属性值例:x=0:pi/10:2*pi;h=plot(x,sin(x);set(h,color,r,linestyle,:,marker,P);get(h,marker)结果:ans=pentagram,10,9.3图形对象的创建9.3.1图形窗口对象建立图形窗口对象使用figure函数,其调用格式为:句柄变量=figure(属性名1,属性值1,属性名2,属性值2,)MATLAB通过对属性的操作来改变图形窗口的形式。也可以使用figure函数按MATLAB缺省的属性值建立图形窗口:figure或句柄变量=figure要关闭图形窗口,使用close函数,其调用格式为:close(窗口句柄)另外,closeall命令可以关闭所有的图形窗口,clf命令则是清除当前图形窗口的内容,但不关闭窗口。,11,例:x=0:pi/10:2*pi;h=plot(x,sin(x);set(h,color,r,linestyle,:,marker,P);clfh1=figureh2=figureclose(h2)运行结果,12,MATLAB为每个图形窗口提供了很多属性。这些属性及其取值控制着图形窗口对象。常用属性如下:MenuBar属性、Name属性、NumberTitle属性、Resize属性、Position属性、Units属性、Color属性、Pointer属性、KeyPressFcn(键盘键按下响应)、WindowButtonDownFcn(鼠标键按下响应)、WindowButtonMotionFcn(鼠标移动响应)及WindowButtonUpFcn(鼠标键释放响应)等。,13,MenuBar属性:该属性的取值可以是figure(缺省值)或none,用来控制图形窗口是否应该具有菜单条。如果它的属性为none,则表示该图形窗口没有菜单条。这是用户可以采用uimenu函数来加入自己的菜单条。如果属性值为figure,则该窗口将保持图形窗口默认的菜单条。这时也可以采用uimenu函数在原默认的图形窗口菜单后面添加新的菜单项。Name属性:该属性的取值为字符串,为图形的标题,它的缺省值为空。标题形式为:figure1:标题。MumberTitle属性:取值为on(缺省值)或off。决定图形窗口中是否以Figuren为标题的前缀。Resize属性:取值为on(缺省值)或off。决定着在图形窗口建立后可否用鼠标改变该窗口的大小。,14,Position属性:该属性的取值由4个元素构成abcd。决定图形的位置与大小。其中a,b分别为窗口左下角的横纵坐标值;c,d分别为窗口的宽度和高度。它们的单位由units属性决定。Units属性:该属性的取值为下列字符串的一种:piexl(像素,为缺省值)、normalized(相对单位)、inches(英寸)、centimeters(厘米)、points(磅)。,15,菜单设计函数建立用户菜单要建立用户菜单可用uimenu(userinterfacesmenu)函数,因其调用方法不同,该函数可以用于建立一级菜单项和子菜单项。建立一级菜单项的函数调用格式为:一级菜单项句柄=uimenu(图形窗口句柄,属性名1,属性值1,属性名2,属性值2,)建立子菜单项的函数调用格式为:子菜单项句柄=uimenu(一级菜单项句柄,属性名1,属性值1,属性名2,属性值2,),16,例:建立一个图形窗口。该图形窗口没有菜单条,标题名称为“我的图形窗口”,起始于屏幕左下角、宽度和高度分别为450像素点和250像素点,背景颜色为黑色,且当用户从键盘按下任意一个键时,将在该图形窗口绘制出正弦曲线。并完成如图所示的菜单功能。x=0:pi/20:2*pi;y=sin(x);figure(Menubar,none,Name,我的图形窗口,position,11450250,NumberTitle,off,color,k,keypressfcn,h=plot(x,y);h0=uimenu(gcf,label,我的菜单);h1=uimenu(h0,label,背景色-蓝色,callback,set(gcf,Color,blue);%制作下拉菜单项blueh2=uimenu(h0,label,背景色-红色,callback,set(gcf,Color,red);%制作下拉菜单Redh3=uimenu(h0,label,显示主菜单,callback,set(gcf,Menubar,figure);h4=uimenu(h0,label,隐藏主菜单,callback,set(gcf,Menubar,none);h5=uimenu(h0,label,曲线颜色-红色,callback,set(h,color,r);,17,18,菜单设计另外实例例:建立系统菜单。菜单条中含有3个菜单项:Plot、Option和Quit。Plot中有SineWave和CosineWave两个子菜单项,分别控制在本图形窗口画出正弦和余弦曲线。Option菜单项的内容中Gridon和Gridoff控制给坐标轴加网格线,Boxon和Boxoff控制给坐标轴加边框,而且这4项只有在画有曲线时才是可选的。WindowColor控制图形窗口背景颜色。Quit控制是否退出系统。,19,screen=get(0,ScreenSize);W=screen(3);H=screen(4);figure(Color,1,1,1,Position,0.2*H,0.2*H,0.5*W,0.3*H,Name,图形演示系,NumberTitle,off,MenuBar,none);%定义Plot菜单项hplot=uimenu(gcf,Label,20,hgon=uimenu(hoption,Label,21,22,快捷菜单快捷菜单是用鼠标右键单击某对象时在屏幕上弹出的菜单。这种菜单出现的位置是不固定的,而且总是和某个图形对象相联系。在MATLAB中,可以使用uicontextmenu函数和图形对象的UIContextMenu属性来建立快捷菜单,具体步骤为:(1)利用uicontextmenu函数建立快捷菜单。(2)利用uimenu函数为快捷菜单建立菜单项。(3)利用set函数将该快捷菜单和某图形对象联系起来。例:绘制曲线y=2sin(5x)sinx,并建立一个与之相联系的快捷菜单,用以控制曲线的线型和曲线宽度。,23,x=0:pi/100:2*piy=2*sin(5*x).*sin(x);h1=plot(x,y);hc=uicontextmenuhls=uimenu(hc,label,线型)hlw=uimenu(hc,label,线宽)uimenu(hls,label,虚线,callback,set(h1,linestyle,:););uimenu(hls,label,实线,callback,set(h1,linestyle,-););uimenu(hlw,label,加宽,callback,set(h1,linewidth,5););uimenu(hlw,label,变细,callback,set(h1,linewidth,1););set(h1,uicontextmenu,hc),24,25,例:x=0:pi/20:2*pi;y=sin(x);h0=plot(x,y);h1=uicontextmenu;xx=uimenu(h1,Label,线型);xk=uimenu(h1,Label,线宽);ys=uimenu(h1,Label,颜色);uimenu(xx,Label,虚线,Callback,set(h0,LineStyle,:););uimenu(xx,Label,实线,Callback,set(h0,LineStyle,-););uimenu(xx,Label,点划线,Callback,set(h0,LineStyle,-.););uimenu(xx,Label,双划线,Callback,set(h0,LineStyle,-););uimenu(xk,Label,宽,Callback,set(h0,LineWidth,5););uimenu(xk,Label,窄,Callback,set(h0,LineWidth,0.5););uimenu(ys,Label,蓝色,Callback,set(h0,Color,b););uimenu(ys,Label,绿色,Callback,set(h0,Color,g););uimenu(ys,Label,红色,Callback,set(h0,Color,r););uimenu(ys,Label,青色,Callback,set(h0,LineColor,c););uimenu(ys,Label,品红色,Callback,set(h0,Color,m););uimenu(ys,Label,黄色,Callback,set(h0,Color,y););uimenu(ys,Label,黑色,Callback,set(h0,Color,k););uimenu(ys,Label,白色,Callback,set(h0,Color,w););set(h0,UIContextMenu,h1);,26,27,9.3.2坐标轴对象建立坐标轴对象使用axes函数,其调用格式为:句柄变量=axes(属性名1,属性值1,属性名2,属性值2,)Axes常用属性:Box属性:该属性的取值为on或off(缺省值),它决定坐标轴是否带有边框。GridLineStyle属性:该属性的取值可以是:(缺省值)、-.、-、或none。该属性定义网格线的线型。,28,Position属性:该属性的取值由4个元素构成abcd。这个向量在图形窗口中决定一个矩形区域,坐标轴位于其中。该矩形区域的左下角相对于图形窗口左下角的坐标为(a,b),矩形的高度和宽度为c和d。它们的单位由units属性决定。Units属性:该属性的取值为下列字符串的一种:normalized(相对单位,为缺省值)、inches(英寸)、centimeters(厘米)、points(磅)。Title属性:该属性的取值是坐标轴标题文字对象句柄。可以通过该属性对坐标轴标题文字对象进行操作。如:h=get(gca,Title);%获得标题文字对象句柄set(h,color,r);%设置标题文字颜色,29,xlabel、ylabel、zlabel、属性:3种属性的取值分别是x,y,z轴的说明文字句柄。其操作与title句柄相同。如:h=get(gca,xlabel);set(h,string,valueofxaxis);Xlim、YLim、ZLim属性。3种属性的取值都是具有两个元素的数值向量。3中属性分别定义各坐标轴的上下限,缺省值为0,1。以前介绍的axis函数实际上是对这些属性的直接赋值。,30,XScale、YScale、ZScale属性。3种属性的取值都是Linear(缺省值)或log,这些属性定义各坐标轴的刻度类型。View属性。该属性的取值是两个元素的数值向量,定义视点方向。,31,clcx=0:pi/20:2*pi;y=sin(x);plot(x,y)h=get(gca,title);set(h,string,abc,color,r,BackgroundColor,g,FontAngle,italic,Fontsize,50)h1=get(gca,xlabel);set(h1,string,x,color,b,Fontsize,30)h2=get(gca,ylabel);set(h2,string,y,color,k,Fontsize,40)%set(h)%set(h1),32,例:利用坐标轴对象实现图形窗口的任意分割。利用axes函数可以在不影响图形窗口上其他坐标轴的前提下建立一个新的坐标轴,从而实现图形窗口的任意分割。clfx=0:pi/10:2*piy=sin(x);axes(position,0.2,0.2,0.2,0.7);plot(y,x);gridonset(gca,gridlinestyle,-);axes(position,0.4,0.2,0.5,0.5);t=0:pi/100:20*pi,33,x=sin(t);y=cos(t);z=t.*sin(t).*cos(t);plot3(x,y,z)axes(position,0.55,0.6,0.25,0.3);X,Y=meshgrid(-8:0.5:8)Z=sin(sqrt(X.2+Y.2)./sqrt(X.2+Y.2+eps);mesh(X,Y,Z),34,35,仔细体会下面所有语句的作用:clcclearh0=get(0,screensize)%获得屏幕尺寸x=0:0.05:10;y=sin(x);plot(x,y)f1=figure(posi,h0(3)/4h0(4)/4h0(3)/2h0(4)/2);%居中plot(x,y-2)%holdon%plot(x,y,r-*)%close%体会用法,关闭当前窗口%get(gcf,posi)f2=figure(posi,11h0(3)/2h0(4)/2);%h2=get(f2,posi)axes(position,0.050.50.90.4)%其单位是相对单位,最大值为1plot(x,y,r-*)%axes(position,0.050.050.90.4)%以下看局部图像%x=4.5:0.05:5;%y=sin(x);%plot(x,y,r-*)%close(f1)%close%closeall,36,9.3.3曲线对象建立曲线对象使用line函数,其调用格式为:句柄变量=line(x,y,z,属性名1,属性值1,属性名2,属性值2,)其中对x,y,z的解释与高层曲线函数plot和plot3等一样。每个曲线对象也具有很多属性。除公共属性外,其他常用属性如下:Color属性、LineStyle属性、LineWidth属性、Marker属性、MarkerSize属性等。,37,Color属性:该属性的取值是代表某颜色的字符或RGB值。定义曲线的颜色。Linestyle属性:定义线型。Linewidth属性:定义线宽,缺省值为0.5磅。Marker属性:定义数据点标记符号,缺省值为none。Markersize属性:定义数据点符号的大小,缺省值为6磅。Xdata、Ydata、zdata属性:3种属性的取值都是数值向量或矩阵,分别代表曲线对象的3个坐标轴数据。,38,例:利用曲线对象绘制曲线。t=0:pi/20:2*pi;y1=sin(t);y2=cos(t);figh=figure(position,30,100,800,350);axes(Gridlinestyle,-.,xlim,0,2*pi,ylim,-1,1);line(xdata,t,ydata,y1,linewidth,2);line(t,y2);gridon,39,以上程序运行等同于:t=0:pi/20:2*pi;y1=sin(t);y2=cos(t);figh=figure(position,30,100,800,350);axes(Gridlinestyle,-.,xlim,0,2*pi,ylim,-1,1);h1=plot(t,y1)set(h1,linewidth,2,color,k)holdonplot(t,y2);gridon,40,41,注:line(ydata,y,xdata,x)=line(xdata,x,ydata,y)=line(x,y)plot(xdata,x,ydata,y)不正确。,42,9.3.4文字对象使用text函数可以根据指定位置和属性添加文字说明,并保存句柄。该函数调用格式为:句柄变量=text(x,y,z,说明文字,属性名1,属性值1)其中x,y,z为位置坐标。说明文字中除使用标准的ASCII字符外,还可使用LaTeX格式的控制字符。h=text(0.5,0.5,gamma=rho)2)文字对象的常用属性如下:Color属性、string属性、Fontsize属性、Rotation属性,43,color属性:文字对象颜色。String属性:文字标注的内容。Fontsize属性:定义文字的大小,缺省值为10磅。Rotation属性:该属性的取值是数值量,缺省值为0。它定义文字对象的旋转角度,取正值表示逆时针方向旋转,取负值表示顺时针方向旋转。,44,例利用曲线对象绘制曲线并利用文字对象完成标注。x=-pi:0.1:piy1=sin(x);y2=cos(x);figure(position,30,100,800,358);h=line(x,y1,linestyle,:,color,g)line(x,y2,linestyle,-,color,b)xlabel(-pileqthetaleqpi)ylabel(sin(theta)text(-pi/4,sin(-pi/4),leftarrowsin(-pidiv4),fontsize,20)set(h,color,r,linewidth,2),45,46,9.3.5曲

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论