• 低层绘图操作1


    • 5.5.1 图形对象及其句柄

    1.图形对象

    2.图形对象句柄

    例:
    x=linspace(0,28pi,30);
    y=sin(x);
    h0=plot(x,y,'rx') %曲线对象的句柄
    h1=gcf %图形窗口句柄
    h2=gca %坐标轴句柄
    h3=findobj(gca,'Marker','x')
    

    5.5.2图形对象属性

    1.属性名与属性值

    每种图形对象都具有各种各样的属性.

    例:LineStyle是曲线对象的一个属性名,它的值决定着线型取值可以是'-'、':'、'-·'、'--'、''和'none'。

    在属性名的写法中,不区分字母的大、小写,而且在不引起岐义前提 下,属性名不必写全。

    例;lines就代表LineStyle。此外,属性名要用单撇号括起来。

    2.属性的操作

    创建一个对象时,必须给对象的各种属性赋予必要的属性值,否则,系统自动使用默认属性值。

    用户可以通过set函数重新设置对象属性,也可通过get函数获取这些属性值

    set调用格式:

    set(句柄,属性名1,属性值1,属性名2,属性值2,...)
    其中句柄用于指明要操作的对象。
    如果在调用set函数时省略全部属性名和属性值,则将显示出句柄所有的允许属性。
    
    例:绘制正弦曲线并保存曲线句柄,然后改变曲线属性
    x=0:pi/10:2*pi;
    h=plot(x,sin(x));
    set(h,'color','r','LineStyle',':','Marker','p');%颜色,线形和数据点的标记符号
    

      

    get调用格式:

    V=get(句柄,属性名)
    其中V是返回的属性值。如果在调用get函数时,省略属性名,则将返回句柄所有的属性值。
    用get 函数来获取上述曲线的属性一值。例如 :
     col=get(h,'color');
    将得到曲线的颜色属性值[1 0 0],即红色。
    用get函数可获取屏幕的分辨率:v=get(0,'ScreenSize')
    >>col =
    
         1     0     0
    
    >> v=get(0,'ScreenSize')
    
    v =
    
               1           1        1600         900
    其中(1,1)为屏幕左下角坐标,(1600,900)为宽高
    可以根据屏幕分辨率来设置容器大小
    

      3.对象的公共属性

    图形对象具有各种各样的属性,有些属性一是所有对象共同具备的:

    Children属性:该属性的取值是该 对象所有子对象的句柄组成的一个向量。
    
    Parent属性:该属性的取值是该对象的父对象的句柄。显然图形窗口对象的Parent属性总是0
    
    Tag属性:该属性的取值一个字符串,它相当于给该对象定义了一个标识符。
    定义了Tag属性后,在任何程序中都可以通过findobj函数获取该标识符所对应图形对象的柄。
    例如
    :hf=findobj(0,'Tag’,‘Flag1')将会在屏幕对象用户其子对象中寻找 Tag属性为Flag1的对象,并返回句柄。
    
    UserData属性。该属性的取值是一个矩阵,默认值为空矩阵。
    在程序设计中,可以将一个图形对象有关的比较重要的数据存储在这个属性中,借此可以达到传递数据的目的。
    具体做法是,先用set函数给某一句柄添加一些附加数据(一个矩阵),如果想使用这样的矩阵,再用get函数调用出来。
    
    Visible属性。该属性的取值是on(默认值)或off。决定着图形窗口是否在屏幕上显示出来。当它的值 为off时,可以用来隐藏该图形
    
    ButtonDownFcn属性。该属性的取值是一个字符串,一般是某个M文件的文件名或一小段Matlab语句。图形对象确定了一个作用区域,当单击该区域时,Matlab自动执行的程序段。
    
    CreateFcn属性。该属性的取值是一个字符串,一般是某个M文件的文件名或一小段Matlab语句。当创建该对象时,Matlab自动执行此程序段。
    
    DeleteFcn属性。该属性的取值是一个字符串,一般是某个M文件的文件名或一小段Matlab语句。当取消该对象时,matlab自动执行该程序段。
    

      例:在同一坐标下画红、绿两条不同曲线,希望获得绿色曲线的句柄,并对其进行设置。

    >>  x=0:pi/50:2*pi;
    y=sin(x);
    z=cos(x);
    plot(x,y,'r',x,z,'g');
    H=get(gca,'Children');%获取两曲线句柄向量H
    for k=1:length(H)
     if get(H(k),'Color')==[0 1 0]%[0 1 0]代表绿色
     Hg=H(k);
    end
    end
    pause%便于观察设置效果
    set(Hg,'LineStyle',':','Marker','p');%对绿色曲线进行设置
    

      

  • 相关阅读:
    RHEL6 建立DVD repo
    stl之std::remove_copy
    分鱼问题
    Nutch的日志系统
    log4j配置文件及nutch中的日志配置
    slf4j教程
    Java中的日期操作
    Avro基础
    【JAVA编码专题】总结
    【JAVA编码专题】深入分析 Java 中的中文编码问题
  • 原文地址:https://www.cnblogs.com/freesblog/p/4453014.html
Copyright © 2020-2023  润新知