第 10章 MATLAB图形句柄
10.1 图形对象及其句柄
10.2 图形对象属性
10.3 图形对象的创建
10.1 图形对象及其句柄
1.图形对象
MATLAB的图形对象包括计算机屏幕、图形窗口、坐标轴、
用户菜单、用户控件、曲线、曲面、文字、图像、光源、
区域块和方框等。系统将每一个对象按树型结构组织起来。
2.图形对象句柄
MATLAB在创建每一个图形对象时,都为该对象分配唯一的一个值,称其为图形对象句柄 (Handle)。句柄是图形对象的唯一标识符,不同对象的句柄不可能重复和混淆。
计算机屏幕作为根对象由系统自动建立,其句柄值为 0,而图形窗口对象的句柄值为一正整数,并显示在该窗口的标题栏,其他图形对象的句柄为浮点数。 MATLAB提供了若干个函数用于获取已有图形对象的句柄。
例 10-1 绘制曲线并查看有关对象的句柄。
10.2 图形对象属性
1.属性名与属性值
MATLAB给每种对象的每一个属性规定了一个名字,称为属性名,而属性名的取值称为属性值。
2.属性的操作
set函数的调用格式为:
set(句柄,属性名 1,属性值 1,属性名 2,属性值 2,…)
其中句柄用于指明要操作的图形对象。如果在调用 set函数时省略全部属性名和属性值,则将显示出句柄所有的允许属性。
get函数的调用格式为:
V=get(句柄,属性名 )
其中 V是返回的属性值。如果在调用 get函数时省略属性名,
则将返回句柄所有的属性值。
3.对象的公共属性对象常用的公共属性,Children属性,Parent属性,Tag属性,Type属性,UserData属性,Visible属性、
ButtonDownFcn属性,CreateFcn属性,DeleteFcn属性。
例 10-2 在同一坐标下绘制红、绿两根不同曲线,希望获得绿色曲线的句柄,并对其进行设置。
10.3 图形对象的创建
10.3.1 图形窗口对象建立图形窗口对象使用 figure函数,其调用格式为:
句柄变量 =figure(属性名 1,属性值 1,属性名 2,属性值
2,…)
MATLAB通过对属性的操作来改变图形窗口的形式。也可以使用 figure函数按 MATLAB缺省的属性值建立图形窗口:
figure 或 句柄变量 =figure
要关闭图形窗口,使用 close函数,其调用格式为:
close(窗口句柄 )
另外,close all 命令可以关闭所有的图形窗口,clf命令则是清除当前图形窗口的内容,但不关闭窗口。
MATLAB为每个图形窗口提供了很多属性。这些属性及其取值控制着图形窗口对象。除公共属性外,
其他常用属性如下,MenuBar属性,Name属性、
NumberTitle属性,Resize属性,Position属性、
Units属性,Color属性,Pointer属性、
KeyPressFcn(键盘键按下响应 )、
WindowButtonDownFcn(鼠标键按下响应 )、
WindowButtonMotionFcn(鼠标移动响应 )及
WindowButtonUpFcn(鼠标键释放响应 )等。
例 10-3 建立一个图形窗口。该图形窗口没有菜单条,标题名称为“我的图形窗口”,起始于屏幕左下角、宽度和高度分别为 450像素点和 250像素点,背景颜色为绿色,且当用户从键盘按下任意一个键时,将在该图形窗口绘制出正弦曲线。
10.3.2 坐标轴对象建立坐标轴对象使用 axes函数,其调用格式为:
句柄变量 =axes(属性名 1,属性值 1,属性名 2,属性值 2,…)
调用 axes函数用指定的属性在当前图形窗口创建坐标轴,并将其句柄赋给左边的句柄变量。也可以使用 axes 函数按
MATLAB缺省的属性值在当前图形窗口创建坐标轴:
axes 或 句柄变量 = axes
用 axes 函数建立坐标轴之后,还可以调用 axes 函数将之设定为当前坐标轴,且坐标轴所在的图形窗口自动成为当前图形窗口:
axes(坐标轴句柄 )
MATLAB为每个坐标轴对象提供了很多属性。除公共属性外,其他常用属性如下,Box属性,GridLineStyle属性、
Position属性,Units属性,Title属性等。
例 10-4 利用坐标轴对象实现图形窗口的任意分割。
利用 axes函数可以在不影响图形窗口上其他坐标轴的前提下建立一个新的坐标轴,从而实现图形窗口的任意分割。
10.3.3 曲线对象建立曲线对象使用 line函数,其调用格式为:
句柄变量 =line(x,y,z,属性名 1,属性值 1,属性名 2,属性值
2,…)
其中对 x,y,z的解释与高层曲线函数 plot和 plot3等一样,其余的解释与前面介绍过的 figure和 axes函数类似。
每个曲线对象也具有很多属性。除公共属性外,其他常用属性如下,Color属性,LineStyle属性,LineWidth属性、
Marker属性,MarkerSize属性等。
例 10-5 利用曲线对象绘制曲线。
10.3.4 文字对象使用 text函数可以根据指定位置和属性值添加文字说明,并保存句柄。该函数的调用格式为:
句柄变量 =text(x,y,z,'说明文字 ',属性名 1,属性值 1,属性名 2,
属性值 2,…)
其中说明文字中除使用标准的 ASCII字符外,还可使用
LaTeX格式的控制字符。
除公共属性外,文字对象的其他常用属性如下,Color属性、
String属性,Interpreter属性,FontSize属性,Rotation属性。
例 10-6 利用曲线对象绘制曲线并利用文字对象完成标注。
10.3.5 曲面对象建立曲面对象使用 surface函数,其调用格式为:
句柄变量 =surface(x,y,z,属性名 1,属性值 1,属性名 2,属性值 2,…)
其中对 x,y,z的解释与高层曲面函数 mesh和 surf等一样,其余的解释与前面介绍过的 figure和 axes等函数类似。
每个曲面对象也具有很多属性。除公共属性外,其他常用属性如下,EdgeColor属性,FaceColor属性,LineStyle属性、
LineWidth属性,Marker属性,MarkerSize属性等。
例 10-7 利用曲面对象绘制三维曲面 z=sin(x)。