预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共74页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第9章MATLAB图形句柄第四章已介绍很多MATLAB高层绘图函数,这些函数都是将不同的曲线或曲面绘制在图形窗口中,而图形窗口也就是由不同图形对象(如坐标轴、曲线、曲面或文字等)组成的图形界面。 MATLAB给每个图形对象分配一个标识符,称为句柄,以后可以通过该句柄对该图形对象的属性进行设置,也可以获取有关属性,从而能够更加自主地绘制各种图形。直接对图形句柄进行操作的绘图方法称为低层绘图操作。相对于高层绘图,低层绘图操作控制和表现图形的能力更强,事实上,MATLAB的高层绘图函数都是利用低层绘图函数建立起来的,相当于系统为用户做了许多细节性的工作,用起来很方便。 但有时单靠高层绘图不能满足要求,例如,绘制特殊图形、建立图形用户界面等,需要对图形句柄操作。9.1图形对象及其句柄 1.图形对象 MATLAB中的每一个具体的图形都是由若干个不同的图形对象组成的。 所有的图形对象都按父对象和子对象的方式组成层次结构,如图9-1。计算机屏幕♠每个具体图形不一定包含全部对象,但必须带有计算机屏幕和图形窗口对象; ♠计算机屏幕是产生其他对象的基础,称为根对象; ♠一个图形窗口对象有3种不同类型的子对象:坐标轴、用户界面对象和标注对象。其中用户界面对象用于构建图形用户界面,在第10章详细介绍. ♠坐标轴有3种子对象:核心对象、绘图对象和组对象; ♠核心对象有7种不同类型的子对象:曲线、曲面、文本、图像、区域块、方块和光源; ♠对坐标轴及其3种子对象的操作即构成低层绘图操作,也就是对图形句柄的操作。 2.图形对象句柄 MATLAB在创建每一个图形对象时,都为该对象分配唯一的一个值,称其为图形对象句柄(Handle)。句柄是图形对象的唯一标识符,不同对象的句柄不可能重复和混淆。 计算机屏幕作为根对象由系统自动建立,其句柄值为0,而图形窗口对象的句柄值为一正整数,并显示在该窗口的标题栏,其他图形对象的句柄为浮点数。MATLAB提供了若干个函数用于获取已有图形对象的句柄。表9-1例9-1绘制曲线并查看有关对象的句柄。 clc;clear;closeall; x=linspace(0,2*pi,30); y=sin(x); h0=plot(x,y,'rx')%曲线对象的句柄; h1=gcf%图形窗口句柄; h2=gca%坐标轴句柄; h3=findobj(gca,'Marker','x')%坐标轴上曲线的句柄;♠图形对象的句柄由系统自动分配,每次分配的值不一定相同(多次运行例9-1的程序以便比较)。在获取对象的句柄后,可以通过句柄来设置或获取对象的属性。3.图形对象属性 1.属性名与属性值 MATLAB给每种对象的每一个属性规定了一个名字,称为属性名,而属性名的取值称为属性值。 在属性名的写法中,不区分字母的大小写,而且在不引起歧义的前提下,属性名不必全写。如,用lines代替LineStyle。此外,属性名要用单撇号括起来。2.属性的操作 当创建一个对象时,必须给对象的各种属性赋予必要的属性值,否则,系统自动使用缺省属性值。用户可以通过set函数重新设置对象属性,同时也可以通过get函数获取这些属性值。 set函数的调用格式为: set(句柄,属性名1,属性值1,…) 其中句柄用于指明要操作的图形对象。如果在调用set函数时省略全部属性名和属性值,则将显示出句柄所有的允许属性。用图形句柄操作的方法绘制以上正弦曲线时,先用缺省属性绘制曲线并保存曲线句柄,然后通过改变曲线的属性来设置曲线的颜色、线型和数据点的标记符号。当然,还有很多其他属性,可对曲线作进一步的控制。 用set函数显示句柄所有的允许属性: clc;clear;closeall; x=0:pi/10:2*pi; h=plot(x,sin(x)) set(h)get函数的调用格式为: V=get(句柄,属性名) 其中V是返回的属性值。 用get函数获取上述正弦曲线的属性值: clc;clear;closeall; x=0:pi/10:2*pi; h=plot(x,sin(x)) set(h,'color','r','linestyle',':','Marker','p') col=get(h,'color')如果在调用get函数时省略属性名,则将返回句柄所有的属性值。 clc;clear;closeall; x=0:pi/10:2*pi; h=plot(x,sin(x)) set(h,'color','r','linestyle',':','Marker','p') get(h)用get函数可获取屏幕的分辨率: V=get(0,'screensize') V= 111024768 获取屏幕所有的属性值: A=get(0) 3.对象的公共属性 图形对象具有各种各样的属性,有些属性是