首页 > 其他 > 详细

MATLAB学习笔记(十)——MATLAB图形句柄

时间:2015-03-01 13:07:28      阅读:1069      评论:0      收藏:0      [点我收藏+]

(一)图形对象及其句柄

一、图形对象

       MATLAB图形对象包括:

技术分享

1、MATLAB每一个具体图形一定包括计算机屏幕和图形窗口两个对象

二、图形对象句柄

1、定义

     MATLAB在创建每一个图形对象时,都会给该对象分配一个唯一确定的值,称其为图形对象句柄。

PS:(1)计算机屏幕句柄默认为0.

      (2)图形窗口对象的句柄值为一正整数,并显示在窗口标题栏中

      (3)其他图形对象的句柄为浮点数。

2、获取已有对象的句柄

技术分享

3、一个demo

x=linspace(0,2*pi,30);
y=sin(x);

h0=plot(x,y,r)    %曲线对象的句柄
h1=gcf              %图形窗口句柄
h2=gca              %坐标轴句柄
h3=findobj(gca,Marker,x)            %坐标轴上曲线的句柄

运行结果如下:

h0 =

  174.0016


h1 =

     1


h2 =

  173.0011


h3 =

   Empty matrix: 0-by-1

技术分享

(二)图形对象属性

一、属性名与属性值

属性名:每种对象的每个属性都规定好了名字,一般为其英文单词,一般要用单撇号括起来

属性值:每种属性名的取值

二、属性的操作

1、set函数

    创建对象时,需要配置各个属性,否则将会以缺省值进行创建。

(1)调用格式

set(句柄,属性名1,属性值1,属性名2,属性值2,……)
%其中句柄指明要操作的对象
%set中的属性可以全部缺省

(2)一个demo。

x=0:pi/10:2*pi;
h=plot(x,sin(x));
set(h,Color,b,LineStyle,:,Marker,p);

技术分享

2、get函数

     我们还可以通过get得到属性值,再进行改变

(1)调用格式

V=get(句柄,属性名)
%V是返回的属性值
%如果省略属性名,则返回句柄的所有属性值。

(2)demo

x=linspace(0.2*pi,20);
y=sin(x);
h=plot(x,y);
col=get(h,Color);                %得到曲线的颜色


V=get(0,ScreenSize);         %得到当前窗口的平屏幕分辨率

三、对象的公共属性

1、Children属性:

     取值是该对象所有子对象的句柄组成的一个向量。

2、Parent属性:

     取值是该对象父对象的句柄。

3、Tag属性:

     取值是一个字符串,作为对象的一个标识符(别名)

4、Type属性:

     表示该对象的类型(显然是不可以改变的)

5、UserData属性:

     该属性的取值是一个矩阵,缺省值为空矩阵。一般将一个图形对象有关的比较重要的数据储存在这个属性中,借此达到传送数据的作用。

一般做法:先用set函数给某一句柄添加一些附加数据(一个矩阵),如果想使用这样的矩阵,再用get调用出来。

6、Visible属性:

     取值是on(缺省值)或off。决定是否显示在屏幕上。但是不显示不代表不存在。

7、ButtonDownFcn属性:

     取值是一个字符串,一般是某个M文件名或一段MATLAB程序。图形对象巨鼎了一个作用区域,当单击该区域时,MATLAB自动执行该程序段。

8、CreatFcn属性:

     取值是一个字符串,一般是某个M文件名或一段MATLAB程序。当创建该对象时自动自行该程序段(同构造函数)

9、DeleteFcn属性:

     取值是一个字符串,一般是某个M文件名或一段MATLAB程序。当取消该对象时自动自行该程序段(同析构函数)

 

一个demo:

技术分享

x=0:pi/50:2*pi;
y=sin(x);
z=cos(x);
plot(x,y,r,x,z,g);

H1=get(gca,Children);      %获取两曲线句柄向量H1
for k=1:size(H1)
    if get(H1(k),Color)==[0 1 0]       %【0,1,0】表示绿色
        H1g=H1(k);                       %获取绿色线条句柄
    end
end

pause;              %暂停
set(H1g,LineStyle,:,Marker,p);     %对绿色线条进行设置。

结果:

技术分享

按下任意键

 技术分享

(三)图形对象测创建

一、图形窗口对象

1、定义

     图形窗口是MATLAB中很重要的一类图形对象。MATLAB的一切图形图像的输出都是在图形窗口中完成的。

2、调用格式:

句柄变量=figure(属性名1,属性值1,属性名2,属性值2);
%属性名和属性值可以缺省,则命令如下
句柄变量=figure  或者  figure

figure(窗口句柄)       %设置为当前窗口。
                                  %如果窗口句柄写成一个整数,则可以使用这个句柄生成一个新的图形窗口,并定义为当前窗口。

close(窗口句柄)        %关闭图形窗口
close all;                     %关闭全部图形窗口
clf;                              %清除当前图形窗口的内容,但不关闭窗口。

3、图形窗口对象的常用属性(除了公共属性)

(1)MenuBar属性

       取值是figure(缺省值)或none,用来控制窗口是否有菜单条。

       如果属性为none,那么用户可以使用uimenu函数来加入自己的菜单条。

       如果属性为figure,那么窗口保持默认的菜单条,这时可以采用uimenu函数在原默认的图形窗口菜单后面添加新的菜单项。

(2)Name属性

       取值是字符串,缺省值为空,作为图形串口的标题

(3)NumberTitle属性:

      取值是on(缺省值)或者off。决定是否以“Figure No.n:“为标题前缀,这里n是图形窗口的序号,即句柄值。

(4)Resize属性:

      取值为on(缺省值)或off。决定在窗口对象建立后可否用鼠标改变该窗口的大小

(5)Position属性

(6)Units属性:

      该属性的取值可以是下列字符串的任何一种:

      pixel(像素,缺省值),normalized(相对单位),inches(英寸),centimeters(厘米)和points(磅)。

(7)Color属性:

      取值可以用字符表示,也可以用三元组表示。缺省值为’k’即黑色。

(8)Pointer属性:

     取值是arrow(缺省值)、crosshair、watch、topl、topr、botl、botr、circle、cross、fleur、custom等。

(9)对键盘及鼠标响应属性:

      允许对键盘和鼠标键按下这样的动作进行响应。

KeyPressFcn 键盘键按下响应
WindowButtonDownFcn 鼠标键按下响应
WindowButtonMotionFcn 鼠标盈动响应
WindowButtonUpFcn 鼠标键释放响应

4、一个demo

x=linspace(0.2*pi,60);
y=sin(x);
hf=figure(Color,[0,1,0],Position,[1,1,450,250],Name,Fuck,NumberTitle,off,MenuBar,none,KeyPressFcn,plot(x,y);axis([0,2*pi,-1,1]););

结果:

技术分享

二、坐标轴对象

MATLAB学习笔记(十)——MATLAB图形句柄

原文:http://www.cnblogs.com/BlueMountain-HaggenDazs/p/4306865.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!