MATLAB图形句柄
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
常用图形对象的句柄函数
gcf 获取当前图形窗口的句柄 gca 获取当前坐标轴的句柄 例:绘制曲线并查看有关对象的句柄
>> x=0:0.1*pi:2*pi; >> y=sin(x); >> h1=gcf h1 = 1 >> h2=gca h2 = 151.0057
9.2 图形对象属性
1.属性名与属性值 MATLAB给每种对象的每一个属性规定了一个名字, 称为属性名,而属性名的取值称为属性值。 2.属性的操作 set函数的调用格式为: set(句柄,属性名1,属性值1,属性名2,属性值2,…) 其中句柄用于指明要操作的图形对象。如果在调用set 函数时省略全部属性名和属性值,则将显示出句柄所有的 允许属性。 set(0) set(gcf) set(gca)
例:建立一个图形窗口。该图形窗口没有菜单条,标题名称为 “我的图形窗口”,起始于屏幕左下角、宽度和高度分别为 450像素点和250像素点,背景颜色为黑色,且当用户从键盘 按下任意一个键时,将在该图形窗口绘制出正弦曲线。并完 成如图所示的菜单功能。
x=0:pi/20:2*pi; y=sin(x); figure('Menubar', 'none', 'Name', '我的图形窗口', 'position',[1 1 450 250], 'NumberTitle', 'off', 'color','k','keypressfcn','h=plot(x,y)') ; h0=uimenu(gcf, 'label' , '我的菜单' ); h1=uimenu(h0, 'label' , '背景色-蓝色' , 'callback' , 'set(gcf,''Color'',''blue'')' ); % 制作下拉菜单项blue h2=uimenu(h0, 'label' , '背景色-红色' , 'callback' , 'set(gcf,''Color'',''red'')' ); % 制作下拉菜单 Red h3=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'')' );
ans = pentagram
9.3 图形对象的创建 9.3.1 图形窗口对象 建立图形窗口对象使用figure函数,其调用格式为: 句柄变量=figure(属性名1,属性值1,属性名2, 属性值2,…) MATLAB通过对属性的操作来改变图形窗口的形式。 也可以使用figure函数按MATLAB缺省的属性值建立图形 窗口: figure 或 句柄变量=figure 要关闭图形窗口,使用close函数,其调用格式为: close(窗口句柄) 另外,close all 命令可以关闭所有的图形窗口,clf命 令则是清除当前图形窗口的内容,但不关闭窗口。
hgon=uimenu(hoption,'Label','&Grid on','Callback','grid on','Enable','off'); hgoff=uimenu(hoption,'Label','&Grid off','Callback','grid off','Enable','off'); hbon=uimenu(hoption,'Label','&Box on','separator','on','Callback','box on','Enable','off'); hboff=uimenu(hoption,'Label','&Box off','Callback','box off','Enable','off'); hwincor=uimenu(hoption,'Label','&Window Color'); uimenu(hwincor,'Label','&Red','Accelerator','r','Callback','s et(gcf,''Color'',''r'');'); uimenu(hwincor,'Label','&Blue','Accelerator','b','Callback',' set(gcf,''Color'',''b'');'); uimenu(hwincor,'Label','&Yellow','Callback','set(gcf,''Color' ',''y'');'); uimenu(hwincor,'Label','&White','Callback','set(gcf,''Color'' ,''w'');'); %定义Quit菜单项 hquit=uimenu(gcf,'Label','&Quit'); uimenu(hquit,'Label','&退出','Callback','close(gcf)');
菜单设计函数
建立用户菜单 要建立用户菜单可用uimenu(user interfaces menu)函数,因其调用方法不同,该函数可以用 于建立一级菜单项和子菜单项。 建立一级菜单项的函数调用格式为: 一级菜单项句柄=uimenu(图形窗口句柄,属性 名1,属性值1,属性名2,属性值2,…) 建立子菜单项的函数调用格式为: 子菜单项句柄=uimenu(一级菜单项句柄,属性 名1,属性值1,属性名2,属性值2,…)
MenuBar属性:该属性的取值可以是figure(缺省值)或 none,用来控制图形窗口是否应该具有菜单条。如果它的 属性为none,则表示该图形窗口没有菜单条。这是用户可 以采用uimenu函数来加入自己的菜单条。如果属性值为 figure,则该窗口将保持图形窗口默认的菜单条。这时也 可以采用uimenu函数在原默认的图形窗口菜单后面添加 新的菜单项。
例:绘制二维曲线,通过选择不同的选项可以设置曲线的颜 色、线型和数据点的标记符号。 x=0:pi/10:2*pi; h=plot(x,sin(x)); pause set(h,'color','r','linestyle',':','marker','P');
1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1
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','&Plot'); uimenu(hplot,'Label','Sine Wave','Callback' ,['t=pi:pi/20:pi;','plot(t,sin(t));', 'set(hgon,''Enable'',''on'');',... 'set(hgoff,''Enable'',''on'');','set(hbon,''Enable'',''on'');',... 'set(hboff,''Enable'',''on'');']); uimenu(hplot,'Label','Cosine Wave','Callback',... ['t=-pi:pi/20:pi;','plot(t,cos(t));', 'set(hgon,''Enable'',''on'');',... 'set(hgoff,''Enable'',''on'');','set(hbon,''Enable'',''on'');',... 'set(hboff,''Enable'',''on'');']); %定义Option菜单项 hoption=uimenu(gcf,'Label','&Option');
例:
x=0:pi/10:2*pi; h=plot(x,sin(x)); set(h,'color','r','linestyle',':','marker','P'); clf h1=figure h2=figure close(h2)
运行结果
MATLAB为每个图形窗口提供了很多属性。 这些属性及其取值控制着图形窗口对象。常用属 性如下:MenuBar属性、Name属性、 NumberTitle属性、Resize属性、Position属性、 Units属性、Color属性、Pointer属性、 KeyPressFcn(键盘键按下响应)、 WindowButtonDownFcn(鼠标键按下响应)、 WindowButtonMotionFcn(鼠标移动响应)及 WindowButtonUpFcn(鼠标键释放响应)等。
1 0百度文库8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8
0 1 2 3 4 5 6 7
-1
0
1
2
3
4
5
6
7
获取句柄的属性值get函数: get(句柄,属性名) 如果在调用get函数时省略属性名,则将返回句柄的所 有属性值 例: x=0:pi/10:2*pi; h=plot(x,sin(x)); set(h,'color','r','linestyle',':','marker','P'); get(h,'marker') 结果:
第9章 MATLAB图形句柄 9.1 图形对象及其句柄 9.2 图形对象属性 9.3 图形对象的创建
9.1 图形对象及其句柄
绘图函数将不同的曲线或曲面绘制在图形窗口中,而 图形窗口由不同的对象(如坐标轴、曲线、曲面或文字等) 组成的图形界面。Matlab给每个图形对象分配一个标识符, 称为句柄。以后可以通过该句柄对该图形对象的属性进行 设置,也可以获取有关的属性值,从而能够更加自主地绘 制各种图形。 1.图形对象 MATLAB的图形对象包括计算机屏幕、图形窗口、 坐标轴、用户菜单、用户控件、曲线、曲面、文字、图像、 光源、区域块和方框等。系统将每一个对象按树型结构组 织起来。 每个具体图形不必包含每个对象,但每个图形必须 具备根屏幕和图形窗口。
2.图形对象句柄
MATLAB在创建每一个图形对象时,都为该 对象分配唯一的一个值,称其为图形对象句柄 (Handle)。句柄是图形对象的唯一标识符,不同 对象的句柄不可能重复和混淆。 计算机屏幕作为根对象由系统自动建立,其 句柄值为0,而图形窗口对象的句柄值为一正整数, 并显示在该窗口的标题栏,其他图形对象的句柄 为浮点数。MATLAB提供了若干个函数用于获取 已有图形对象的句柄,如:figure,line,text, surface, axes( xlabel,ylabel,zlabel,title)
Name属性:该属性的取值为字符串,为图形的标题,它的 缺省值为空。标题形式为:figure 1:标题。
MumberTitle 属性:取值为on(缺省值)或off。决定图形窗 口中是否以Figure n为标题的前缀。 Resize属性:取值为on(缺省值)或off。决定着在图形窗口 建立后可否用鼠标改变该窗口的大小。
菜单设计另外实例
例:建立系统菜单。菜单条中含有3个菜单项:Plot、 Option和Quit。Plot中有Sine Wave和Cosine Wave两个子菜单项,分别控制在本图形窗口画出 正弦和余弦曲线。Option菜单项的内容中Grid on 和Grid off控制给坐标轴加网格线,Box on和Box off控制给坐标轴加边框,而且这4项只有在画有 曲线时才是可选的。Window Color控制图形窗口 背景颜色。Quit控制是否退出系统。
Position属性:该属性的取值由4个元素构成[a b c d]。决定 图形的位置与大小。其中a,b分别为窗口左下角的横纵坐 标值;c,d分别为窗口的宽度和高度。它们的单位由units 属性决定。
Units属性:该属性的取值为下列字符串的一种:piexl(像 素,为缺省值)、normalized(相对单位)、inches(英 寸)、centimeters(厘米)、points(磅)。