当前位置:首页 > MbookMATLAB4计算的可视化和GUI设计
色参数 h_ rectangle= rectangle (‘position’,[x,y,w,h],’curvature’,[xc,yc]) h_ patch=patch(‘faces’,fac,’veitices’,vert) h_ image=image(x) h_ text=text(x,y,’string’) h_ light=light(‘PropertyName’,Propertyvalue) h_ uicontrol =uicontrol(‘PropertyName’,Propertyvalue) h_uimenu = uimenu (‘propertyName’, Propertyvalue) 创建贴片 创建图像 创建文字 创建光源 创建用户界面控件 创建用户界面菜单 创建矩形 x、y为左下顶点坐标,w、h为长方形的宽和高,xc、yc为曲率 fac为多边形顶点的序号矩阵,vert为顶点矩阵 x为图像数据矩阵 x、y为字符串string的标注位置 设置光的入射方向 PropertyName和Propertyvalue指定控件的类型 propertyName和Propertyvalue指定菜单的形式
2.对象句柄的获取
(1) 当前对象句柄的获取
MATLAB提供了三个获取当前对象句柄的命令,分别是gcf、gca、gco。 语法:
gcf %获取当前图形窗口句柄 gca %获取当前坐标轴句柄 gco %获取被鼠标最近点击对象的句柄 【例4.28】使用命令获取图形对象的句柄,如图所示。
x=0:0.1:2*pi;
y=sin(x).*exp(-x); plot(x,y)
text(pi,0,'\\leftarrowexp(-x)*sin(x)=0') h_fig=gcf %获取图形窗口的句柄
0.350.30.250.20.150.10.050?exp(-x)*sin(x)=0-0.0501234567h_fig = 1 h_axes=gca %获取坐标轴的句柄 h_axes = 101.0013 h_obj=gco %获取最近点击对象的句柄 h_obj = 3.0017 程序分析:用plot(x,y)画线,因为没有图形窗口所以自动产生图形窗口;图形窗口句柄为1;坐标轴句柄为100.0013;鼠标最近点击的对象是曲线句柄为3.0017。
(2) 查找对象
用命令 findobj可以快速查找所有对象,以及获取指定属性值的对象句柄。 语法:
h=findobj %返回根对象和所有子对象的句柄 h=findobj(h_obj) %返回指定对象的句柄
h=findobj(‘PropertyName’,PropertyValue) %返回符合指定属性值的对象句柄 h=findobj(h_obj, ‘PropertyName’, PropertyValue)
%在指定对象及子对象中查找符合指定属性值的对象句柄
说明:h_obj为指定对象句柄;PropertyName为属性名;PropertyValue为属性值。 【例4.28续】使用findobj命令获取图4.42中图形对象的句柄。
findobj
%返回根对象和所有子对象的句柄
ans =
0 1.0000 100.0013 101.0038 3.0017
h_text=findobj(h_fig,'string','\\leftarrowexp(-x)*sin(x)=0') %查找符合属性值的文字对象句柄
h_text =
101.0038
程序分析:根对象句柄为0;其子对象图形窗口句柄为1;图形窗口子对象坐标轴句柄为100.0013;坐标轴子对象文字句柄为101.0038;坐标轴子对象曲线句柄为3.0017;文字对象的文字属性名为string。
(3) 追溯父对象和子对象的句柄
如果一个对象的句柄已知,则可以追溯到其父对象和子对象的句柄。 语法:
h_parent=get(h_obj,’parent’) %追溯父对象的句柄 h_children=get(h_obj,’children’) %追溯子对象的句柄 【例4.28续】追溯坐标轴对象的父对象和子对象。
h_children=get(h_axes,'children') %子对象为文字对象和曲线对象
h_children = 101.0038 3.0017
h_parent=get(h_axes,'parent')
%父对象为图形窗口对象
h_parent = 1
3.对象句柄的删除
删除图形对象使用命令delete(h_obj),该命令将删除句柄所指对象和所有子对象,而且不提示确认,使用时要小心。
【例4.28续】删除坐标轴。
delete(h_axes)
4.6.3图形对象属性的获取和设置
1.创建对象时设置属性
对象的属性可以在创建时设置,在创建时句柄图形对象可以设置多个属性。 【例4.29】创建图形对象。
h_fig=figure('color','red','menubar','none','position',[0,0,300,300])
或者使用结构数组创建图形对象:
ps.color='red';
ps.position=[0,0,300,300]; ps.menubar='none'; h_fig=figure(ps)
h_fig = 1
程序分析:创建一个窗口,背景为红色,没有菜单条,在屏幕的(0,0)位置,宽度、高度为300。
2. 用get函数获取属性值
get函数用于获取指定对象的属性值。 语法:
get(h_obj) %获取句柄对象所有属性的当前值 get(h_obj, 'PropertyName') %获取句柄对象指定属性的当前值 【例4.29续】获取图形对象属性。
p=get(h_fig,'position')
p =
0 0 300 300 c=get(h_fig,'color')
c =
1 0 0
程序分析:图形对象的颜色为红色,用RGB三元组表示。
3. 用set函数设置属性值
set函数用来设置对象的属性值。 语法:
set(h_obj) %显示句柄对象所有属性和属性值 set(h_obj, 'PropertyName') %显示句柄对象指定属性名的属性值 set(h_obj, 'PropertyName', ' PropertyValue ') %设置句柄对象指定属性的属性值 set(h_obj, 'PropertyStructure') %用结构数组设置句柄对象指定属性的属性值 【例4.30】使用低层命令画图,并设置各对象的属性,如图4.43所示。
h_fig=figure('color','red','menubar','none','position',[0,0,300,300]);
x=0:0.1:2*pi;
y=sin(x).*exp(-x);
h_line1=plot(x,y,'b'); title('y=exp(-x)*sin(x)') set(gca,'ygrid','on') %显示y网格 line1width=get(h_line1,'linewidth') %获取曲线宽度
line1width = 0.5000
set(h_line1,'linewidth',3) 度
h_title =get(gca,'title')
%设置曲线宽
%获取标题句柄
h_title = 115.0016
共分享92篇相关文档