您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 咨询培训 > matlab图形句柄.
MATLAB图形句柄1高层绘图与底层绘图的区别2句柄图形及功能3创建图形对象的底层函数4图形对象及其句柄5图形对象属性6图形对象的创建——matlab语言的句柄绘图可以对图形各基本对象进行更为细腻的修饰,可以产生更为复杂的图形,而且为动态图形的制作奠定了基础。前面的同学已经详细介绍了MATLAB的数据可视化功能,即如何通过运用MATLAB的绘图函数和图形绘制窗口绘制用户需要的二维、三维等图形,相信同学们通过学习,已经应该对于“高级”绘图的运用有了一定程度的了解。正如我们所能体会到的,MATLAB中的“高级”绘图指令往往不能使用户对于图形绘制了解得很透彻,如果用户需要通过了解“低层”绘图指令和图形对象属性开发函数,来对高级绘图指令的形成原理进行深入理解,并绘制出更加个性化的图形,那么我们应该仔细学习以下的内容。高层绘图与底层绘图的区别高层绘图函数——是对整个图形进行操作的,图形每一部分的属性都是按缺省方式设置的,充分体现了matlab语言的实用性。底层绘图函数——可以定制图形,对图形的每一部分进行控制,用户可以用来开发用户界面以及各专业的专用图形。充分体现了matlab语言的开发性•句柄图形:利用底层绘图函数,通过对对象属性的设置(HandleGraphics)与操作实现绘图。•句柄图形中所有图形操作都是针对图形对象而言的。•句柄图形充分体现了面向对象的程序设计句柄图形的功能句柄图形可以随意改变matlab生成图形的方式。句柄图形允许你定制图形的许多特性,无论是对图形做一点小改动,还是影响所有图形输出的整体改动。句柄图形的特性高层绘图函数是无法实现的句柄图形及功能创建图形对象的底层函数figure创建图形窗口调用格式:h=figure(n)n为窗口序号uicontrol图形界面控制调用格式:h=uicontrol(‘property’,value,…)property/value确定控制类型uimenu创建用户界面菜单调用格式:h=uimenu(‘property’,value,…)property/value确定菜单形式。axes创建轴对象h=axes(‘property’,left,bottom,width,height)定义轴对象的位置与大小line创建线对象h=line(x,y,z)patch创建块对象h=patch(x,y,z,c)x,y,z定义多边形,c确定填充颜色。surface创建面对象h=surface(x,y,z,c)x,y,z三维曲面坐标,c颜色矩阵。image显示图象h=image(x);x为图像矩阵text标注文字h=text(x,y,’string’)每个底层函数只能创建一个图形对象,并将它们置于适当的父辈对象中.1图形对象及其句柄绘图函数将不同的曲线或曲面绘制在图形窗口中,而图形窗口由不同的对象(如坐标轴、曲线、曲面或文字等)组成的图形界面。Matlab给每个图形对象分配一个标识符,称为句柄。以后可以通过该句柄对该图形对象的属性进行设置,也可以获取有关的属性值,从而能够更加自主地绘制各种图形。1.图形对象MATLAB的图形对象包括计算机屏幕、图形窗口、坐标轴、用户菜单、用户控件、曲线、曲面、文字、图像、光源、区域块和方框等。系统将每一个对象按树型结构组织起来。每个具体图形不必包含每个对象,但每个图形必须具备根屏幕和图形窗口。2.图形对象句柄MATLAB在创建每一个图形对象时,都为该对象分配唯一的一个值,称其为图形对象句柄(Handle)。句柄是图形对象的唯一标识符,不同对象的句柄不可能重复和混淆。计算机屏幕作为根对象由系统自动建立,其句柄值为0,而图形窗口对象的句柄值为一正整数,并显示在该窗口的标题栏,其他图形对象的句柄为浮点数。MATLAB提供了若干个函数用于获取已有图形对象的句柄,如:figure,line,text,surface,axes(xlabel,ylabel,zlabel,title)常用图形对象的句柄函数gcf获取当前图形窗口的句柄gca获取当前坐标轴的句柄例:绘制曲线并查看有关对象的句柄x=0:0.1*pi:2*pi;y=sin(x);h1=gcfh1=1h2=gcah2=151.00572图形对象属性及操作1.属性名与属性值MATLAB给每种对象的每一个属性规定了一个名字,称为属性名,而属性名的取值称为属性值。2.属性的操作改变图形对象的属性set函数set函数的调用格式为:set(句柄,属性名1,属性值1,属性名2,属性值2,…)其中句柄用于指明要操作的图形对象。如果在调用set函数时省略全部属性名和属性值,则将显示出句柄所有的允许属性。set(0)set(gcf)set(gca)例:绘制二维曲线,通过选择不同的选项可以设置曲线的颜色、线型和数据点的标记符号。x=0:pi/10:2*pi;h=plot(x,sin(x));pauseset(h,'color','r','linestyle',':','marker','P');01234567-1-0.8-0.6-0.4-0.200.20.40.60.8101234567-1-0.8-0.6-0.4-0.200.20.40.60.81获取句柄的属性值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(五角星)3图形对象的创建1.图形窗口对象建立图形窗口对象使用figure函数,其调用格式为:句柄变量=figure(属性名1,属性值1,属性名2,属性值2,…)MATLAB通过对属性的操作来改变图形窗口的形式。也可以使用figure函数按MATLAB缺省的属性值建立图形窗口:figure或句柄变量=figure要关闭图形窗口,使用close函数,其调用格式为:close(窗口句柄)另外,closeall命令可以关闭所有的图形窗口,clf命令则是清除当前图形窗口的内容,但不关闭窗口。例:x=0:pi/10:2*pi;h=plot(x,sin(x));set(h,'color','r','linestyle',':','marker','P');clfh1=figureh2=figureclose(h2)运行结果MATLAB为每个图形窗口提供了很多属性。这些属性及其取值控制着图形窗口对象。常用属性如下:MenuBar属性、Name属性、NumberTitle属性、Resize属性、Position属性、Units属性、Color属性、Pointer属性、KeyPressFcn(键盘键按下响应)、WindowButtonDownFcn(鼠标键按下响应)、WindowButtonMotionFcn(鼠标移动响应)及WindowButtonUpFcn(鼠标键释放响应)等。MenuBar属性:该属性的取值可以是figure(缺省值)或none,用来控制图形窗口是否应该具有菜单条。如果它的属性为none,则表示该图形窗口没有菜单条。这是用户可以采用uimenu函数来加入自己的菜单条。如果属性值为figure,则该窗口将保持图形窗口默认的菜单条。这时也可以采用uimenu函数在原默认的图形窗口菜单后面添加新的菜单项。Name属性:该属性的取值为字符串,为图形的标题,它的缺省值为空。标题形式为:figure1:标题。NumberTitle属性:取值为on(缺省值)或off。决定图形窗口中是否以Figuren为标题的前缀。Resize属性:取值为on(缺省值)或off。决定着在图形窗口建立后可否用鼠标改变该窗口的大小。Position属性:该属性的取值由4个元素构成[abcd]。决定图形的位置与大小。其中a,b分别为窗口左下角的横纵坐标值;c,d分别为窗口的宽度和高度。它们的单位由units属性决定。Units属性:该属性的取值为下列字符串的一种:piexl(像素,为缺省值)、normalized(相对单位)、inches(英寸)、centimeters(厘米)、points(磅)。菜单设计函数建立用户菜单要建立用户菜单可用uimenu(userinterfacesmenu)函数,因其调用方法不同,该函数可以用于建立一级菜单项和子菜单项。建立一级菜单项的函数调用格式为:一级菜单项句柄=uimenu(图形窗口句柄,属性名1,属性值1,属性名2,属性值2,…)建立子菜单项的函数调用格式为:子菜单项句柄=uimenu(一级菜单项句柄,属性名1,属性值1,属性名2,属性值2,…)例:建立一个图形窗口。该图形窗口没有菜单条,标题名称为“我的图形窗口”,起始于屏幕左下角、宽度和高度分别为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'')');快捷菜单快捷菜单是用鼠标右键单击某对象时在屏幕上弹出的菜单。这种菜单出现的位置是不固定的,而且总是和某个图形对象相联系。在MATLAB中,可以使用uicontextmenu函数和图形对象的UIContextMenu属性来建立快捷菜单,具体步骤为:(1)利用uicontextmenu函数建立快捷菜单。(2)利用uimenu函数为快捷菜单建立菜单项。(3)利用set函数将该快捷菜单和某图形对象联系起来。例:绘制曲线y=2sin(5x)sinx,并建立一个与之相联系的快捷菜单,用以控制曲线的线型和曲线宽度。x=0:pi/100:2*pi;y=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);2.坐标轴对象建立坐标轴
本文标题:matlab图形句柄.
链接地址:https://www.777doc.com/doc-2887256 .html