MATLAB图形句柄

合集下载

matlab handles用法

matlab handles用法

matlab handles用法MATLAB 图形用户界面 (GUI) 的一个重要组成部分是 handles 句柄。

在 GUI 设计中,handles 句柄可以用于访问和修改 GUI 界面中的各种元素,包括按钮、文本框、列表框、图像等。

本文将介绍 handles 句柄的用法,包括创建 handles 句柄、使用 handles 句柄访问和修改 GUI 元素以及处理事件等方面。

一、创建 handles 句柄1.1 在 GUIDE 中创建 handles 句柄在使用 GUIDE(GUI 开发环境)创建 GUI 界面时,handles 句柄已经预定义好了,只需要在 GUI 设计界面中添加 UI 元素,就会自动为元素分配一个 handles 句柄。

例如在 GUI 界面中添加一个 PushButton 按钮,编号为 pushbutton1。

在 MATLAB脚本程序中可以使用如下代码获取该按钮的 handles 句柄:```handles.pushbutton1```1.2 在 MATLAB 代码中创建 handles 句柄如果不使用 GUIDE 创建 GUI 界面,可以通过自己编写 MATLAB 代码的方式来创建界面和 handles 句柄。

首先需要创建一个 GUI 窗口,例如:```f = figure('Units', 'normalized', 'Position', [0.2 0.2 0.6 0.6]);```使用 uicontrol 函数创建一个按钮,例如:```hButton = uicontrol('Parent', f, 'Style', 'pushbutton', 'String', 'Push Me', 'Position', [10 10 80 30]);```这段代码中,hButton 是创建的按钮的句柄,f 是 GUI 窗口的句柄。

matlab句柄绘图课件

matlab句柄绘图课件
为什么使用句柄绘图?
句柄绘图提供了更高级的图形操作和自定义功 能,使得绘图过程更加灵活和可控。
句柄绘图的优点
• 可以动态更新图形 • 支持交互式修改 • 创建复杂的可视化效果
句柄绘图的示例
1
静态图与动态图的区别
2
Hale Waihona Puke 了解静态图和动态图在句柄绘图中的
应用和区别。
3
句柄绘图的使用方法
学习如何在MATLAB中使用句柄对象 创建和修改图形。
句柄绘图的应用
句柄绘图广泛应用于科学研 究、工程建模和数据可视化 等领域。
句柄绘图的未来发 展
展望句柄绘图技术在未来的 发展方向和应用前景。
MATLAB句柄基础
1 什么是句柄?
句柄是一个指向存储对象或数据的引用,通过句柄可以访问和操作存储的内容。
2 句柄的用途
在MATLAB中,句柄可用于绘图、GUI编程、对象引用和回调函数等各种应用场景。
3 句柄的存储方式
在MATLAB中,句柄可以通过变量、属性和函数返回值等形式进行存储。
句柄绘图的优势
MATLAB句柄绘图
MATLAB句柄绘图的课件将为您介绍句柄绘图的基础知识和应用,帮助您更 好地理解和运用MATLAB的强大绘图功能。
MATLAB句柄绘图简介
什么是MATLAB句柄绘图?
MATLAB句柄绘图是一种在MATLAB中使用 图形句柄对象绘制图形的方法。
为什么需要使用句柄绘图?
句柄绘图提供了更灵活、可操作性更强的绘 图方式,方便用户对图像进行交互和修改。
句柄绘图的实例
通过实际案例演示句柄绘图的强大功 能和灵活性。
句柄绘图的应用
1 句柄绘图的应用场景
句柄绘图广泛应用于科学研究、工程建模、数据可视化和图形界面设计等领域。

【转】matlab图形句柄详解(一)

【转】matlab图形句柄详解(一)

【转】matlab图形句柄详解(⼀)在matlab中,每⼀个对象都有⼀个数字来标识,叫做句柄.当每次创建⼀个对象时,matlab就为它建⽴⼀个唯⼀的句柄,句柄中包含有该对象的相关信息参数,可以在后续程序中进⾏操作,改变其中的参数,以便达到不同的效果。

例如:gcf 是返回当前被激活的窗⼝的句柄。

你可以认为它就指代当前窗⼝。

figure(gcf)打开这个窗⼝。

句柄式图形常⽤函数:所有对象都有属性来定义它们的特征,正是通过设定这些属性来修正图形显⽰的⽅式。

尽管许多属性所有的对象都有,但与每⼀种对象类型(⽐如坐标轴,线,曲⾯)相关的属性列表都是独⼀⽆⼆的。

对象属性可包括诸如对象的位置、颜⾊、类型、⽗对象、⼦对象及其它内容。

每⼀个不同对象都有和它相关的属性,可以改变这些属性⽽不影响同类型的其他对象。

和每⼀种对象类型(图形,坐标轴,线,⽂本,曲⾯,补⽚和图象)相关的完整的属性列表在本章的后⾯给出。

对象属性包括属性名和与它们相联关的值。

属性名是字符串,它们通常按混合格式显⽰,每个词的开头字母⼤写,⽐如:’ LineStyle ‘ 。

但是,MATLAB识别⼀个属性时是不分⼤⼩写的。

另外,只要⽤⾜够多的字符来唯⼀地辨识⼀个属性名即可。

例如,坐标轴对象中的位置属性可以⽤ ‘ Position ‘, ‘ position ‘ ,甚⾄是 ‘ pos ‘来调⽤。

当建⽴⼀个对象时,它⽤⼀组缺省属性值,该值可以⽤两种⽅法来改变:改变默认属性值⽅法1:» Hf_1=figure( ‘color’, ‘white’ )它⽤缺省的属性值建⽴⼀个新的图形窗⼝,只是背景颜⾊被设为⽩⾊⽽不是缺省的[0.8 0.8 0.8](灰⾊)。

改变默认属性值⽅法2:为了获得和改变句柄图形对象(如上⾯的Hf_1)的属性只需要两个函数:函数get返回某些对象属性的当前值。

使⽤函数get的最简单语法是get(handle, ‘ PropertyName’ )。

matlab图形操作

matlab图形操作

matlab图形操作本⽂对matlab中利⽤图形句柄对图⽚属性进⾏设置的操作进⾏简单的总结说明:(1)对图窗和坐标轴属性进⾏整体设置可以通过gcf和gca语句获取当前图窗句柄和坐标轴句柄,通过该句柄可以对图窗和坐标轴的各项属性进⾏操作。

图窗和坐标轴分别包含如下属性:% 图窗属性... ...Children: [1×1 Axes] Color: [0.9400 0.9400 0.9400]Colormap: [256×3 double] CurrentAxes: [1×1 Axes]... ...InnerPosition: [680 558 560 420] PaperUnits: 'centimeters'OuterPosition: [672 550 576 514] Position: [680 558 560 420]Units: 'pixels'% 坐标轴属性... ...Box: 'on' BoxStyle: 'back'Children: [1×1 Line] Color: [1 1 1]FontAngle: 'normal' FontName: 'Helvetica'FontSize: 10 FontSizeMode: 'auto'FontSmoothing: 'on' FontUnits: 'points'FontWeight: 'normal' GridColor: [0.1500 0.1500 0.1500]GridLineStyle: '-' Legend: [0×0 GraphicsPlaceholder]LineWidth: 0.5000 OuterPosition: [0 0 1 1]Parent: [1×1 Figure] Position: [0.1300 0.1100 0.7750 0.8150]Title: [1×1 Text] TitleFontWeight: 'normal'Units: 'normalized' UserData: []View: [0 90] Visible: 'on'... ...XAxis: [1×1 NumericRuler] XAxisLocation: 'bottom'XColor: [0.1500 0.1500 0.1500] XColorMode: 'auto'XDir: 'normal' XGrid: 'off'XLabel: [1×1 Text] XLim: [0 100]XScale: 'linear' XTick: [0 10 20 30 40 50 60 70 80 90 100]XTickLabel: {11×1 cell} XTickLabelRotation: 0YAxis: [1×1 NumericRuler] YColor: [0.1500 0.1500 0.1500]YGrid: 'off' YLabel: [1×1 Text]YLim: [0 100] YScale: 'linear'YTick: [0 10 20 30 40 50 60 70 80 90 100] YTickLabel: {11×1 cell}YTickLabelRotation: 0 ZLabel: [1×1 Text]ZLim: [-1 1] ZScale: 'linear'ZTick: [-1 0 1] ZTickLabel: ''ZTickLabelRotation: 0... ...上⾯仅仅是展⽰了图窗和坐标轴部分重要且常⽤的属性,它们的全部属性可通过查matlab的帮助⽂档或直接在matlab的命令⾏上输⼊gcf、gca或通过如下图所⽰的属性窗⼝进⾏查询和设置。

matlab句柄属性

matlab句柄属性

matlab图形句柄属性句柄式图形常用函数:(1)get(h)返回句柄值h所指定的图形对象的所有属性名称与相对应的属性值(2)a = get(h)返回由句柄值h所指定的图形对象的属性结构数组,并且该数组的字段名称就是该对象的属性名称。

(3)a = get(0,'factory')返回所有能由用户设置的属性的默认定义值。

(4)a = get(0,'FactoryObjectTypePropertyName1','FactoryObjectTypePropertyName2',...) 返回指定对象类型指定的属性值,输入参数FactoryObjectTypePropertyName为一个关键词,由字符Factory与图形对象类型(如Figure)还有属性名称(如Color)组成。

a = get(0,'factoryFigureColor')返回Figure对象的Color属性值。

(5)a = get(h,'DefaultObjectTypePropertyName1','DefaultObjectTypePropertyName1',...) 返回句柄值为h的对象指定属性的默认值。

如“DefaultFigureColor”。

(6)a = get(h,'default')列出h对象的所有属性的默认属性值(7)a = set(h)返回句柄值h所指定的图形对象的所有属性名称对应的可设置属性值,a为结构数组,存储对象的属性名称,其字段值为相对应的属性值。

属性值中用{}括起来的表示默认值。

(8)set(h,a)使用指定的属性值来设置由句柄值h所指定的对象属性,a为结构数组,其字段名称为对象的属性名称,字段值为相对应的属性值。

(9)a = set(0,'factory')返回那些用户可以设置默认值的所有对象的属性,同时显示可设置的属性值。

MATLAB句柄图形

MATLAB句柄图形

句柄图形句柄图形对象句柄图形是对底层图形例程集合的总称,实际上是进行生成图形的工作句柄图形的概念:一幅图的每一组成部分是一个对象,每一个对象有一系列句柄和它相关,每一个对象又按需要可以改变属性1、图形框架窗口对象(Figure)(1)、绘制图形的图形框架窗口对象gca:获得当前坐标轴对象的句柄gcbf:获得当前正在执行调用的图形对象的句柄gcbo:获得当前正在执行调用的对象的句柄gcf:获得当前图形对象的句柄gco:获得当前对象的句柄get(gcf) %由于当前状态下不存在图形窗口,系统生成新的图形窗口(2)、核心(Core)对象核心对象:包括直线、文本和特殊对象(光、图像和面图)等基本的绘图命令坐标系对象:包括线、面图和等高线图等描述的数据对象MATLAB中创建核心对象的函数axes:坐标轴image:MATLAB中的图像light:光源line:二维图形中最基本的图形对象patch:按指定方式填充多边形rectangle:具有可设置边界和表面颜色的二维图形对象surface:图形表面text:图形中的文本[x y]=meshgrid([-2:0.4:2]);Z=x.*exp(-x.^2-y.^2);fh=figure('Position',[350 275 600 450],'Color','w');ah=axes('Color',[0.8 0.8 0.8],'XTick',[-2 -1 0 1 2],...'YTick',[-2 -1 0 1 2]);sh=surface('XData',x,'YData',y,'ZData',Z,...'FaceColor',get(ah,'Color')+0.1,...'EdgeColor','k','Marker','o',...'MarkerFaceColor',[0.5 1 0.85]);view(3)(3)、绘图(Plot)对象绘图对象的父对象可以是坐标轴对象或是群对象MATLAB中绘图对象及其绘图命令areaseries:用于创建area图barseries:用于创建bar图contourgroup:用于创建contour图errobarseries:用于创建errorbar图lineseries:提供给绘制线型图的plot和plot3等函数使用quivergroup:用于创建quiver和quiver3图形scattergroup:用于创建scatter和scatter3图形stairseries:用于创建阶梯图形stemseries:用于创建stem和stem3图形surfaceplot :提供给surf和mesh群函数使用[x y z]=peaks;[c h]=contour(x,y,z);set(h,'LineWidth',3,'LineStyle',':')(4)、注释对象图形编辑工具栏Insert菜单注释函数x=-2*pi:pi/12:2*pi;y=x.^2;subplot(2,2,1:2)plot(x,y)h1=subplot(223);y=x.^4;plot(x,y)h2=subplot(224)y=x.^5;plot(x,y)%定义注释矩形的位置和大小p1=get(h1,'Position');t1=get(h1,'TightInset');p2=get(h2,'Position');t2=get(h2,'TightInset');x1=p1(1)-t1(1);y1=p1(2)-t1(2);x2=p2(1)-t2(1);y2=p2(2)-t2(2);w=x2-x1+t1(1)+p2(3)+t2(3);h=p2(4)+t2(2)+t2(4);%创建注释矩阵来环绕下面两个子图annotation('rectangle',[x1 y1 w h],...'FaceAlpha',0.2,'FaceColor','red','EdgeColor','red');通用函数get和set1、get函数get(handle,’PropertyName’):得到对象的属性及其属性值Hf_1=figure('color','w')p=get(Hf_1,'position') %位置p=get(Hf_1,'Children') %子对象p=get(Hf_1,'Color') %颜色get(Hf_1) %整个图形的属性2、set函数set(H,’PropertyName’,PropertyValue):可以同时设置多个属性的值set(H,a):a为结构体,字段名为图形对象的属性名,字段值为属性值set(H,pn,pv):通过单元型变量为图形对象进行属性赋值,其中pn和pv为单元型变量,pn 为1*n的字符型单元变量,其分量为图形对象的属性名,pv可以是m*n的单元型变量,这里m为句柄数组H的长度,即m=length(H)x=-2*pi:pi/12:2*pi;y=x.^2+x.^3;h=figure;plot(x,y);set(h,'position',[232 248 560 420])set(h,'units') %帮助set(h,'position') %帮助figure('Color','blue','NumberTitle','off','Name','My Figure')Hf_fig=figureHf_line=lineset(Hf_line)get(Hf_line)x=linspace(-2*pi,2*pi,200);y=sin(x);Hf_sin=plot(x,y);set(Hf_sin,'Color',[1 0.5 0],'LineWidth',3)z=cos(x);hold onHf_cos=plot(x,z);set(Hf_cos,'Color',[0.75 0.75 1])查找对象Hf_fig=gcf:返回当前图形的句柄Hf_ax=gca:返回当前图形的当前坐标轴句柄Hx_obj=gco或是Hx_obj=gco(Hf_fig):获取当前对象findobj函数Hx=findobj(‘P1name’,P1value,…):返回根部和根部以下的那些属性值与findobj参数项匹配的对象句柄Hx=findobj(Objecthandle,‘P1name’,P1value,…):限定在Objecthandle中列出的对象和它们的子对象Hx=findobj(Objecthandle,’flat’,‘P1name’,P1value,…):限定在Objecthandle中列出的对象H=findobj:返回根对象和它所有子对象的句柄H=findobj(Objecthandle):返回Objecthandle中列出的对象和它们的子对象的句柄当前对象的定义:用鼠标刚刚点过的对象x=linspace(-pi,pi,100);y=sin(x);z=cos(x);plot(x,y,'r',x,z,'g');H1_lines=get(gca,'Children');for k=1:size(H1_lines)if get(H1_lines(k),'color')==[0 1 0] %查找图中绿色线条的句柄H1_green(k)=H1_lines(k);endendH1_green堆积次序堆积次序决定哪一对象叠加在其他对象上,最后被创建的对象在堆栈顶部默认属性使用set函数默认属性名:Default+属性名set(0,'DefaultAxesColorOrder',[0 0 0],...'DefaultAxesLineStyleOrder','-|--|:|-.')z=peaks;plot(1:49,z(4:7,:))。

第10章 MATLAB图形对象句柄_习题答案

第10章  MATLAB图形对象句柄_习题答案

第10章 MATLAB图形对象句柄习题10一、选择题1.MA TLAB图形系统的根对象是指()。

AA.计算机屏幕B.图形窗口C.坐标轴D.用户界面对象2.以下不正确的选项是()。

DA.坐标轴是图形窗口对象的子对象B.图形对象的句柄变量相当于对象名C.可以通过对象的句柄来设置或获取对象的属性D.gcf函数可以获取当前对象的句柄3.使用figure 函数建立图形窗口时,默认的标题是()。

CA.图形窗口n(n是数字)B.Fig n(n是数字)C.Figure n(n是数字)D.Figure Window n(n是数字)4.用于决定坐标轴对象是否带边框的属性是()。

AA.Box B.Grid C.Position D.Font 5.下列命令中,除一条命令外其他三条命令等价,这一条命令是()。

BA.line(x,y,'Color','r'); B.line(x,y,'r');C.plot(x,y,'Color','r'); D.plot(x,y,'r');6.命令patch([0,1/2,1], [0,tan(pi/3)/2,0], [1,0,0])执行后得到的图形是()。

CA.红色的等腰三角形B.绿色的等腰三角形C.红色的等边三角形D.白色的四边形二、填空题1.H代表一根曲线,要设置曲线的属性可以使用函数,要获取曲线的属性可以使用函数。

set(H,属性名,属性值),get(H,属性名)2.MA TLAB中表示颜色可以用表示,也可以用表示。

字符,RGB三元组3.用于标识图形对象的属性是属性,可以通过函数获取该属性所对应图形对象的句柄。

在屏幕对象及其子对象中查找标识符为ppp的对象,并返回其句柄,可使用命令。

Tag,findobj,hf=findobj(0,'Tag','ppp')4.使用axes 函数可以在中创建对象。

第五讲matlab句柄绘图

第五讲matlab句柄绘图

2
3
4
5
6
7
set(0,'defaultfigurecolor','b') set(0,'defaultaxescolor','g') h=line(x,y) set(h,'color','r') set(gca,'xcolor','w') set(gca,'ycolor','w')
1
0.8
0.6
高层绘图与底层绘图的区别
• 高层绘图函数——是对整个图形进行操 作的,图形每一部分的属性都是按缺省 方式设置的,充分体现了matlab语言的 实用性。
• 底层绘图函数——可以定制图形,对图 形的每一部分进行控制,用户可以用来 开发用户界面以及各专业的专用图形。 充分体现了matlab语言的开发性
一、什么是句柄图形
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
轴对象
窗口对象
线 对 象
面对象
10 0
value of the cosine 1
cos(x)=0.707
0.5
0
线对象
cos(x)
-10 20
轴对象
10
00
-0.5
20
10
-1
-5
0 50
像对象100 150 200
1 0.5
0 -0.5
-1 100 200 300
1. 对象属性的直接操作 对象属性的直接操作是通过当前句柄来
实现的,所以首先要获得当前句柄值以及 对象的属性,然后再查询或修改。

matlab legend 句柄

matlab legend 句柄

matlab legend 句柄
在MATLAB中,图例(legend)句柄是一个指向图例对象的引用,允许用户在程序中对图例进行操作。

图例句柄可以用于更改图例的
属性,如位置、字体大小、颜色等,或者在程序中动态更新图例内容。

要获取图例句柄,可以使用legend函数的输出参数,例如:
matlab.
h = legend('Plot1', 'Plot2');
这里的h就是图例的句柄。

然后可以使用h来操作图例,例如
更改位置:
matlab.
set(h, 'Location', 'NorthEast');
或者更改字体大小:
matlab.
set(h, 'FontSize', 12);
通过使用图例句柄,用户可以在程序中灵活地控制图例的外观和行为。

这对于需要自动化生成图形的程序非常有用,因为可以在不同条件下动态修改图例内容和属性。

同时,图例句柄也可以用于与其他图形对象进行交互,实现更复杂的图形操作和交互式界面设计。

希望这个回答能够帮助到你理解MATLAB中图例句柄的概念和用法。

MATLAB基础教程(第四版)第9章 MATLAB句柄图形

MATLAB基础教程(第四版)第9章 MATLAB句柄图形
MATLAB 的图形对象(1/7)
图形对象是 MATLAB 显示数据的基本绘图 元素,每个对象拥有一个唯一的标志,即 句柄。通过句柄可以对已有的图形对象进 行操作,控制其属性。
MATLAB 中这些对象的组织形式为层次结 构,如图所示。
2021年8月23日
第5页
MATLAB R2018b 基础教程
2021年8月23日
第9页
MATLAB R2018b 基础教程
MATLAB 的图形对象(6/7)
Annotation 对象 它是 MATLAB 中的注释内容,存在于因此 的坐标系中,该坐标系的范围为整个图形 窗口。用户可以通过规范化坐标将注释对 象放置于图形窗口中的任何位置。规范化 坐标的范围为从 0 到 1,窗口左下角为 [0,0],右上角为 [1,1]。
Interruptible
确定当前的响应函数是否可以被后继的响应函数中断
Parent
该对象的上级(父)对象
Selected
表明该对象是否被选中
SelectionHighlight
指定是否显示对象的选中状态
Tag
用户指定的对象标签
Type
该对象的类型
UserData
用户想与该对象关联的任意数据
Visible
2021年8月23日
第7页
MATLAB R2018b 基础教程
MATLAB 的图形对象(4/7)
Core 对象 包括基本的绘图单元,包括线条、文本、多边形 及一些特殊对象,如表面图,表面图中包括矩形 方格、图像和光照对象,光照对象不可视,但是 会影响一些对象的色彩方案。
2021年8月23日
第8页
设置该对象是否可见
2021年8月23日

经典MATLAB图形句柄

经典MATLAB图形句柄
使用`get`命令获取图形属性
PropertyValue = get(h,'PropertyName');
使用`refreshdata`命令更新图…
refreshdata(h);
使用`drawnow`命令更新图形窗口
drawnow;
图形句柄的删除和销毁
使用`delete`命令删除指定图形对象
delete(h);
图形句柄的分类
线条句柄
用于标识和操作线条ቤተ መጻሕፍቲ ባይዱ象。
曲面句柄
用于标识和操作曲面对象。
文本句柄
用于标识和操作文本对象。
图像句柄 组句柄
用于标识和操作图像对象。
用于标识和操作一组相关的 图形对象。
02
常用图形句柄
坐标轴句柄
获取当前坐标轴句柄
使用`gca`函数可以获取当前坐标轴的句柄。
设置坐标轴属性
通过坐标轴句柄,可以设置坐标轴的属性,如坐标轴范围、刻度标记等。
对于初学者来说,经典Matlab图形句柄的学习曲线可能较为陡峭,需 要投入较多时间和精力。
Matlab图形句柄的未来发展
性能优化
未来版本的Matlab可能会对图形句柄进行 性能优化,提高绘图速度和响应能力。
增强灵活性
为了满足更多样化的绘图需求,未来版本的Matlab 可能会增加更多的图形句柄功能和选项。
区域句柄
创建区域
01
使用`area`函数可以创建区域图,并返回区域的句柄。
设置区域属性
02
通过区域句柄,可以设置区域的填充颜色、边框颜色等属性。
添加数据标签
03
使用区域句柄,可以在区域上显示数据标签,以标识区域的值。
03

matlab_图形句柄基本概念

matlab_图形句柄基本概念

matlab中图形句柄到底是什么意思?有什么用?
简单来说,图形对象的名字就叫句柄。

可以通过这个“句柄”,得到或者修改图形对象的属性,这就是它的用处。

比如说画了一个图,可以修改图形坐标,线条宽度,这些就是这个图形对象的属性。

matlab_图形句柄基本概念
在matlab中,图形句柄操作函数是指处于底层的图形特性函数的总称。

图形句柄函数用来描述图形的表现方式和显示方式,使用图形句柄函数可以对图形特性进行控制。

matlab把每一个可视部分都视为一个对象,其中每个对象都有一个唯一的标识符与之对应(也成为句柄);
并且每个对象都定义一组属性,这些属性可以由用户修改,通过设置这些属性,控制对象的图形显示方式。

每一个句柄变量中都存储一个数值,用来作为对象的标识。

matlab7的图形对象的层次结构如下所示:
计算机屏幕root
||
图形窗口figure
// || \\
注释坐标轴坐标轴 UI对象
计算机屏幕的句柄为0,新建图形窗口的句柄一般用1,2,3。

表示,其它对象的句柄都是用一个双精度数表示,不同的对象具有不同的句柄。

北航matlab课件第五讲句柄图形和GUI

北航matlab课件第五讲句柄图形和GUI

自动化科学与电气工程学院
句柄图形与GUI
句柄图形
对象句柄的获取方法 通过get函数获取对象的句柄 如果图形对象已知,可以在程序中通过get函数获取图形对象的句柄。 H_pa=get(H_known,PV) H_pa=get(H_known,’Parent’) 获取H_known句柄对象之父对象的句柄 H_ch=get(H_known,’Children’) 获取H_known句柄对象之子对象的句柄 >> get(H_mesh,'Children') ans = Empty matrix: 0-by-1 >> get(H_mesh,'Parent') ans = 158.0062
>> view(3) >> text('Position',[.5 .5 .5],'String','Hello')
自动化科学与电气工程学院
句柄图形与GUI
句柄图形
对象句柄的获取方法 通过图形创建命令获取对象的句柄 在Matlab中无论使用高层命令还是底层命令都可以通过以下指令获取句柄。 H_GC=GraphicCommand(……….) >> H_mesh=mesh(peaks(20)) H_mesh = 159.0073
父对象
子对象
兄弟对象
自动化科学与电气工程学院
句柄图形与GUI
句柄图形
对象属性 所有对象都有一组定义和描述其外貌和性状的属性(Properties)。 属性有两个部分组成:属性名和属性值。 用户不仅可以查询当前对象的任意属性值,在创建图形对象的时候还可以指定大多 数属性的取值。
>> get(gcf) Color = [0.8 0.8 0.8] Colormap = [ (64 by 3) double array] CurrentAxes = [158.003] CurrentObject = [] NextPlot = add Position = [363 214 560 420] Children = [158.003] Parent = [0]
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第七章 MATLAB图形句柄与第四章的高层绘图指令相比,本章的内容更深入MATLAB可视化功能的内核。

编写本章的目的有两个:(1)使读者更深入地理解高层绘图指令,从而可绘制出更精细更生动更个性的图形;(2)使读者能利用低层图形指令和图形对象属性开发专用绘图函数。

本章在内容安排上有如下考虑:保证概念、结构和方法的完整性:由表及里、由浅入深的原则系统阐述句柄图形体系、图形对象、属性和操作方法。

突出要点、新点和难点:句柄图形体系有11个基本图形对象,每个对象的属性少则20几个,多则近百个。

对此,MATLAB自带资料有详尽的文字说明。

因此,本章只对最常用的、不可或缺的、以及较难掌握的内容进行说明。

强调“可操作性”体现“范例引导概念”的本书宗旨:针对MATLAB自带资料缺少完整、可操作应用实例的弱点,本章设计了部分算例,读者通过阅读或操作这些范例,可掌握各指令、属性之间的有机配合,从而更具体更真切地理解句柄图形。

第一节图形对象及其句柄MATLAB语言的句柄绘图可以对图形各基本对象进行更为细腻的修饰,可以产生更为复杂的图形,而且为动态图形的制作奠定了基础。

高层绘图与底层绘图的区别(1)高层绘图函数—是对整个图形进行操作的,图形每一部分的属性都是按缺省方式设置的,充分体现了MATLAB语言的实用性;(2)底层绘图函数—可以定制图形,对图形的每一部分进行控制,用户可以用来开发用户界面以及各专业的专用图形。

充分体现了MATLAB语言的开发性。

一、图形对象MATLAB的图形对象包括计算机屏幕、图形窗口、坐标轴、用户菜单、用户控件、曲线、曲面、文字、图像、光源、区域块和方框等。

系统将每一个对象按树型结构组织起来。

例:河流断面面积计算程序(exam7_1.m)。

a=[13.0000,8.7700,8.7700,4.7700,4.2700,4.6700,4.1700,2.9700,1.7700,1.0700,1 .6700,1.6700,2.5700,4.6700,3.9700,14.7000] %河底高程x=[0,80,190,245,290,330,400,460,535,580,620,665,730,810,860,890] %起点距Hf_1=figure('NumberTitle','off','name','断面面积计算','Position',[50,80,700,460]) %图形标题plot(x,a) %绘断面图set(gca,'Xdir','Normal','Ydir','Normal','Box','off');s=input('请输入水位值:');ss=s-a;sa=length(a)for i=1:sa;if ss(i)<0;sss(i)=0;elsesss(i)=ss(i);endendQ=trapz(x,sss);hold ony=[0:1:890];aa=['水位',num2str(s),'米'];plot(y,s,'r-')title(['所求的断面面积为',num2str(Q),'平方米'],'FontSize',14,'color','red'),xlabel('起点距(米)')ylabel('水深(米)')gtext(aa)hold off根:图形对象的根,对应于计算机屏幕,根只有一个,其它所有图形对象都是根的后代。

图形窗口: 根的子代,窗口的数目不限,所有图形窗口都是根屏幕的子代,除根之外,其它对象则是窗的后代。

界面控制:图形窗口的子代,创建用户界面控制对象,使得用户可采用鼠标在图形上作功能选择,并返回句柄。

界面菜单: 图形窗口的子代,创建用户界面菜单对象。

轴:图形窗口的子代,创建轴对象,并返回句柄,线面字块像的父辈。

线:轴的子代,创建线对象。

面:轴的子代,创建块对象。

字:轴的子代,创建字对象。

块:轴的子代,创建块对象。

像:轴的子代,创建图像对象。

二、图形对象句柄MATLAB在创建每一个图形对象时,都为该对象分配唯一的一个值,称其为图形对象句柄(Handle)。

句柄是图形对象的唯一标识符,不同对象的句柄不可能重复和混淆。

计算机屏幕作为根对象由系统自动建立,其句柄值为0,而图形窗口对象的句柄值为一正整数,并显示在该窗口的标题栏,其他图形对象的句柄为浮点数。

MATLAB提供了若干个函数用于获取已有图形对象的句柄。

(1)句柄图形:利用底层绘图函数,通过对对象属性的设置(Handle Graphics)与操作实现绘图;(2)句柄图形中所有图形操作都是针对图形对象而言的;(3)句柄图形充分体现了面向对象的程序设计;(4)句柄图形可以随意改变MATLAB生成图形的方式;(5)句柄图形允许你定制图形的许多特性,无论是对图形做一点小改动,还是影响所有图形输出的整体改动;(6)句柄图形的特性高层绘图函数是无法实现的;(7)在高层绘图中对图形对象的描述一般是省缺的或由高层绘图函数自动设置的,因此对用户来说几乎是不透明的;(8)但句柄绘图中上述图形对象都是用户需要经常使用的,所以要作到心中有数,用句柄设置图形对象的属性。

例:(exam7_2.m)x=0:2*pi/180:2*pi;y1=sin(2*x);y2=cos(2*x);h=plot(x,y1,x,y2)l=legend('sin','cos')>> exam7_2h =103.00263.0059l =104.0031三、创建图形对象的底层函数1、figure —创建图形窗口调用格式:h=figure(n) n为窗口序号。

例:创建1号窗口,返回句柄。

h=figure(1)h=1返回值为窗口号数2、uicontrol —图形界面控制调用格式:h=uicontrol(‘property’,value)property/value确定控制类型。

3、uimenu —创建用户界面菜单调用格式:h=uimenu(‘property’,value)property/value 确定菜单形式。

4、axes —创建轴对象h=axes(‘property’,,value)定义轴对象的位置与大小。

5、line —创建线对象h=line(x,y,z)例:h=lien(1:6,1:6)h =3.0066创建线对象的同时也建立了一个唯一的句柄变量h是句柄值——符点数。

6、patch—创建块对象h=patch(x,y,z,c) x,y,z定义多边形,c确定填充颜色。

7、surface —创建面对象h=surface(x,y,z,c) x,y,z三维曲面坐标,c颜色矩阵。

8、image —显示图象h=image(x); x为图像矩阵。

9、text —标注文字h=text(x,y,’string’)每个底层函数只能创建一个图形对象,并将它们置于适当的父辈对象中。

例:①(exam7_3.m)clf reset;H_mesh=mesh(peaks(20))H_grand_parent=get(get(H_mesh,'Parent'),'Parent')disp(' 图柄轴柄'),disp([gcf gca])H_mesh =101.0039H =1图柄轴柄1.0000 100.0033例:②(exam7_4.m)clfreset,t=(0:100)/100*2*pi;H_line=line('Xdata',t,'Ydata',sin(t)) text(pi,0.8,'\fontsize{14}sin(t)')H_c=get(get(H_line,'parent'),'children')T=get(H_c,'Type')H_line =100.0035H_c =102.0061100.0035T ='text''line'第二节图形对象属性一、属性名与属性值1、定义MATLAB给每种对象的每一个属性规定了一个名字,称为属性名,而属性名的取值称为属性值。

2、查阅方法line([0:10],[0:10])(1)图形窗口get(gcf)Alphamap = [ (1 by 64) double array]BackingStore = onCloseRequestFcn = closereqColor = [0.855388 0.855388 0.855388]Colormap = [ (64 by 3) double array]CurrentAxes = [101.006]CurrentCharacter = -CurrentObject = []CurrentPoint = [0 0]Dithermap = [ (64 by 3) double array]DithermapMode = manualDoubleBuffer = offFileName =FixedColors = [ (10 by 3) double array]IntegerHandle = onInvertHardcopy = onKeyPressFcn =MenuBar = figureMinColormap = [64]Name =NextPlot = addNumberTitle = onPaperUnits = centimetersPaperOrientation = portraitPaperPosition = [0.634517 6.34517 20.3046 15.2284]PaperPositionMode = manualPaperSize = [20.984 29.6774]PaperType = A4Pointer = arrowPointerShapeCData = [ (16 by 16) double array] PointerShapeHotSpot = [1 1]Position = [360 514 560 420]Renderer = paintersRendererMode = autoResize = onResizeFcn =SelectionType = normalShareColors = onUnits = pixelsWindowButtonDownFcn =WindowButtonMotionFcn =WindowButtonUpFcn =WindowStyle = normalBeingDeleted = offButtonDownFcn =Children = [101.006]Clipping = onCreateFcn =DeleteFcn =BusyAction = queueHandleVisibility = onHitTest = onInterruptible = onParent = [0]Selected = offSelectionHighlight = onTag =Type = figureUIContextMenu = []UserData = []Visible = on(2)当前轴get(gca)ALim = [0 1]ALimMode = autoAmbientLightColor = [1 1 1]Box = offCameraPosition = [5 5 17.3205]CameraPositionMode = autoCameraTarget = [5 5 0]CameraTargetMode = autoCameraUpVector = [0 1 0]CameraUpVectorMode = autoCameraViewAngle = [6.60861]CameraViewAngleMode = autoCLim = [0 1]CLimMode = autoColor = [1 1 1]CurrentPoint = [ (2 by 3) double array] ColorOrder = [ (7 by 3) double array] DataAspectRatio = [5 5 1]DataAspectRatioMode = autoDrawMode = normalFontAngle = normalFontName = HelveticaFontSize = [10]FontUnits = pointsFontWeight = normalGridLineStyle = :Layer = bottomLineStyleOrder = -LineWidth = [0.5]MinorGridLineStyle = :NextPlot = replacePlotBoxAspectRatio = [1 1 1]PlotBoxAspectRatioMode = autoProjection = orthographicPosition = [0.13 0.11 0.775 0.815]TickLength = [0.01 0.025]TickDir = inTickDirMode = autoTitle = [102.007]Units = normalizedView = [0 90]XColor = [0 0 0]XDir = normalXGrid = offXLabel = [103.005]XAxisLocation = bottomXLim = [0 10]XLimMode = autoXMinorGrid = offXMinorTick = offXScale = linearXTick = [ (1 by 11) double array]XTickLabel = [ (11 by 2) char array] XTickLabelMode = autoXTickMode = autoYColor = [0 0 0]YDir = normalYGrid = offYLabel = [104.004]YAxisLocation = leftYLim = [0 10]YLimMode = autoYMinorGrid = offYMinorTick = offYScale = linearYTick = [ (1 by 11) double array]YTickLabel = [ (11 by 2) char array] YTickLabelMode = autoYTickMode = autoZColor = [0 0 0]ZDir = normalZGrid = offZLabel = [105.004]ZLim = [-1 1]ZLimMode = autoZMinorGrid = offZMinorTick = offZScale = linearZTick = [-1 0 1]ZTickLabel =ZTickLabelMode = autoZTickMode = autoBeingDeleted = offButtonDownFcn =Children = [3.0083]Clipping = onCreateFcn =DeleteFcn =BusyAction = queueHandleVisibility = onHitTest = onInterruptible = onParent = [1]Selected = offSelectionHighlight = onTag =Type = axesUIContextMenu = []UserData = []Visible = on二、属性的操作1、属性值(1)窗口属性值set(gcf)AlphamapBackingStore: [ {on} | off ]CloseRequestFcn: string -or- function handle -or- cell arrayColorColormapCurrentAxesCurrentCharacterCurrentObjectCurrentPointDithermapDithermapMode: [ auto | {manual} ]DoubleBuffer: [ on | {off} ]FileNameIntegerHandle: [ {on} | off ]InvertHardcopy: [ {on} | off ]KeyPressFcn: string -or- function handle -or- cell arrayMenuBar: [ none | {figure} ]MinColormapNameNextPlot: [ {add} | replace | replacechildren ]NumberTitle: [ {on} | off ]PaperUnits: [ {inches} | centimeters | normalized | points ]PaperOrientation: [ {portrait} | landscape | rotated ]PaperPositionPaperPositionMode: [ auto | {manual} ]PaperSizePaperType: [ {usletter} | uslegal | A0 | A1 | A2 | A3 | A4 | A5 | B0 | B1 | B2 | B3 | B4 | B5 | arch-A | arch-B | arch-C | arch-D | arch-E | A | B | C | D | E | tabloid | <custom> ]Pointer: [ crosshair | fullcrosshair | {arrow} | ibeam | watch | topl | topr | botl | botr | left | top | right | bottom | circle | cross | fleur | custom ] PointerShapeCDataPointerShapeHotSpotPositionRenderer: [ {painters} | zbuffer | OpenGL ]RendererMode: [ {auto} | manual ]Resize: [ {on} | off ]ResizeFcn: string -or- function handle -or- cell arraySelectionType: [ normal | open | alt | extend ]ShareColors: [ {on} | off ]Units: [ inches | centimeters | normalized | points | {pixels} | characters ] WindowButtonDownFcn: string -or- function handle -or- cell arrayWindowButtonMotionFcn: string -or- function handle -or- cell arrayWindowButtonUpFcn: string -or- function handle -or- cell arrayWindowStyle: [ {normal} | modal ]ButtonDownFcn: string -or- function handle -or- cell arrayChildrenClipping: [ {on} | off ]CreateFcn: string -or- function handle -or- cell arrayDeleteFcn: string -or- function handle -or- cell arrayBusyAction: [ {queue} | cancel ]HandleVisibility: [ {on} | callback | off ]HitTest: [ {on} | off ]Interruptible: [ {on} | off ]ParentSelected: [ on | off ]SelectionHighlight: [ {on} | off ]TagUIContextMenuUserDataVisible: [ {on} | off ](2)轴属性值set(gca)ALimALimMode: [ {auto} | manual ]AmbientLightColorBox: [ on | {off} ]CameraPositionCameraPositionMode: [ {auto} | manual ]CameraTargetCameraTargetMode: [ {auto} | manual ]CameraUpVectorCameraUpVectorMode: [ {auto} | manual ]CameraViewAngleCameraViewAngleMode: [ {auto} | manual ]CLimCLimMode: [ {auto} | manual ]ColorColorOrderDataAspectRatioDataAspectRatioMode: [ {auto} | manual ]DrawMode: [ {normal} | fast ]FontAngle: [ {normal} | italic | oblique ]FontNameFontSizeFontUnits: [ inches | centimeters | normalized | {points} | pixels ]FontWeight: [ light | {normal} | demi | bold ]GridLineStyle: [ - | -- | {:} | -. | none ]Layer: [ top | {bottom} ]LineStyleOrderLineWidthMinorGridLineStyle: [ - | -- | {:} | -. | none ]NextPlot: [ add | {replace} | replacechildren ]PlotBoxAspectRatioPlotBoxAspectRatioMode: [ {auto} | manual ]Projection: [ {orthographic} | perspective ]PositionTickLengthTickDir: [ {in} | out ]TickDirMode: [ {auto} | manual ]TitleUnits: [ inches | centimeters | {normalized} | points | pixels | characters ] ViewXColorXDir: [ {normal} | reverse ]XGrid: [ on | {off} ]XLabelXAxisLocation: [ top | {bottom} ]XLimXLimMode: [ {auto} | manual ]XMinorGrid: [ on | {off} ]XMinorTick: [ on | {off} ]XScale: [ {linear} | log ]XTickXTickLabelXTickLabelMode: [ {auto} | manual ]XTickMode: [ {auto} | manual ]YColorYDir: [ {normal} | reverse ]YGrid: [ on | {off} ]YLabelYAxisLocation: [ {left} | right ]YLimYLimMode: [ {auto} | manual ]YMinorGrid: [ on | {off} ]YMinorTick: [ on | {off} ]YScale: [ {linear} | log ]YTickYTickLabelYTickLabelMode: [ {auto} | manual ]YTickMode: [ {auto} | manual ]ZColorZDir: [ {normal} | reverse ]ZGrid: [ on | {off} ]ZLabelZLimZLimMode: [ {auto} | manual ]ZMinorGrid: [ on | {off} ]ZMinorTick: [ on | {off} ]ZScale: [ {linear} | log ]ZTickZTickLabelZTickLabelMode: [ {auto} | manual ]ZTickMode: [ {auto} | manual ]ButtonDownFcn: string -or- function handle -or- cell arrayChildrenClipping: [ {on} | off ]CreateFcn: string -or- function handle -or- cell arrayDeleteFcn: string -or- function handle -or- cell arrayBusyAction: [ {queue} | cancel ]HandleVisibility: [ {on} | callback | off ]HitTest: [ {on} | off ]Interruptible: [ {on} | off ]ParentSelected: [ on | off ]SelectionHighlight: [ {on} | off ]TagUIContextMenuUserDataVisible: [ {on} | off ]2、set函数set函数的调用格式为:set(句柄,属性名1,属性值1,属性名2,属性值2,…)其中句柄用于指明要操作的图形对象。

相关文档
最新文档