命令3 patch
功能 生成补片图形对象。该命令为生成补片图形对象的低级图形函数。补片为一个或多个多边形,多边形的顶点为坐标中的点。用户可以指定补片的颜色与光照模式。
用法 patch(X,Y,C) 在当前坐标轴中增加二维带填充模式的补片。参量X,Y确定顶点的位置。若X,Y为矩阵(同型或不同型),系统按列生成多个多边形。若x,y没有定义一封闭的多边形,则命令自动地将多边形封闭。参量x与y可以定义凹的或自身交叉的多边形。可是,一个不可分隔的补片的边界自身交叉,则不能完整填充。在这种情况下,最好是将多边形分解成几个小的、自身没有交叉的多边形。参量c指定每一补片的颜色,它可以为简单的ColorSpec,每面一颜色或每一顶点一颜色。若c为三维列向量,它将被认为是一直接指定的RGB颜色。
patch(X,Y,Z,C) 生成三维的补片对象。
patch(FV) 用结构FV生成一补片。结构FV包含这些域名vertices,faces和可选的facevertecdata,这些域名对应于补片的Vertices属性、Faces属性、FaceVertexCData属性。
patch(…,C,'PropertyName',PropertyValue…) 在二维(X,Y)或三维(X,Y,Z)空间中对补片指定的属性PropertyName设置为PropertyValue。
patch('PropertyName',PropertyValue…) 对所有指定的多个属性PropertyName设置为相应的值PropertyValue。该命令形式可以使用户免除颜色的指定,因为系统将使用缺省的面颜色和边界颜色,除非用户准确地对属性FaceColor与EdgeColor进行设置。该命令形式也允许用户通过对属性Faces与Vertices的设置来代替x-,y-与z-轴的输入。
handle = patch(…) 返回命令patch生成的补片对象句柄。
说明 函数patch不象其他的高级的区域生成函数,例如函数fill或area,它没有检测图形窗口与坐标轴的属性NextPlot的设置情形。它只是简单地在当前坐标轴中添加补片对象而已。
有两种指定颜色的补片属性名:
(1)Cdata——当指定x-,y-与z-轴坐标(XData,YData,ZData)时使用;
(2)FaceVertexCData——当指定多边形的顶点与连接矩阵时使用。
以上两个属性接受颜色数据作为索引颜色或者是真颜色(RGB)。其中索引颜色数据 能代表当前色图的直接索引或者代表映射到整个色图的线性数据的比例数值。
命令4 surface
功能 生成面对象。该命令是生成面图形对象的低级函数。面对象为由矩阵元素的A(I,j)所在的行下标I为x-坐标,所在的列下标j为y-坐标,元素值为z-坐标确定的点生成的空间多边形。
用法 surface(Z) 画出由矩阵z确定的曲面,其中z为定义在一几何矩形区域上的单值函数。
surface(Z,C) 画出颜色由c指定的、面由z指定的空间曲面。
surface(X,Y,Z) 曲面由参数x,y,z确定,颜色参数c=z,因此颜色能恰当地反映曲面的高度。
surface(X,Y,Z,C) 曲面由参数x,y,z确定,颜色由参数c确定。
Surface(x,y,Z) 参数x与y为向量,若[m,n]=size(z),则要求length(x)=n,length(y)=m,面上的点由(x(j),y(i),z(I,j))确定。
Surface(x,y,Z,C) 曲面确定如上情形,颜色由参数c确定。
surface(…'PropertyName',PropertyValue,…) 对指定的曲面属性PropertyName指定为PropertyValue,对曲面进行细微控制。
h = surface(…) 返回生成面对象的句柄。
命令5 image
功能 显示图片对象。该命令通过对矩阵c中每一个元素(每一元素作为引用图形色图下标或直接给出RGB值)的解释而生成一个图片对象。Image命令有两种使用格式:
1.一个调用命令newplot的高级函数,可以确定在何处放置图片与坐标轴的范围为刚好围住图片;使刚生成的图片放置在坐标轴的刻度线与格栅线之上;属性Ydir设置为rervse;属性View为[0 90]。
2.一个增加图片到当前坐标轴的低级命令,而没有调用命令newplot,在低级使用形式中,只能对指定属性进行设置操作。
用户在命令的输入参量中可以输入属性名/属性值,结构数组,细胞数组等。
用法 image(C) 把C作为一图片进行显示。C中的每一个元素指定了一个“图片”矩形中的相应部分的颜色。
image(x,y,C) 在(x,y)确定的位置上画C的元素。其中x,y都为2维矩阵,分别指定x轴与y轴的范围,其效果与image(C)相同,只不过是进行了恰当的比例缩放。
image(x,y,C,'PropertyName',PropertyValue,…) 该形式为指定属性名/属性值的高级使用形式,在执行该命令之前,先执行命令newplot。
image('PropertyName',PropertyValue,…) 该形式为低级使用形式,它只接受属性名/属性值的输入。
handle = image(…) 返回刚生成的图片对象的句柄。用户可以从上面的任何形式的调用后获得图片句柄。
例7-49
>>load clown
>>image(X,'CDataMapping','scaled')
>>colormap(map)
图形结果为图7-48。
命令6 uicontrol
功能 生成用户控制图形对象(用户界面控制)。也通过该命令运行图形用户界面。当对象被选中时,一般会执行相应的操作。系统支持多种控件,每一种都有不同的作用:
校验框——当单击检验框时,会执行一操作。该组件对于提供用户多个独立的选择是很有用的。要激活一校验框,只需用鼠标单击该组件即可,且选中的状态在组件上显示出来。
可编辑文本框——允许用户输入与修改文本文字的区域。当用户想把文字作为 输入时,可使用该组件。若一可编辑文本框有焦点,则单击文本框的菜单栏不会执行任何操作。因此,在单击菜单条后,语句get(edit_handle,’String’)并没有返回当前编辑框中的内容。因为系统必须执行回调函数来改变属性 string的值,即使屏幕上显示的文字已经改变。
框架——该组件为一封闭的、可见的、图形窗口区域。框架能使一用户图形界面中相关的控制组件能容易理解。框架没有相关的回调程序。只有控制组件能在框架中显示。框架不是透明的,因此用户定义的组件先后顺序决定了组件是否被框架遮住或可见。属性Stacking order决定了控制组件的显示顺序:第一个定义的组件最先显示,后面定义的控制组件则覆盖已经存在的组件。若用户要用一框架包围一些组件,则必须第一个定义框架。
列表框——显示一些项目的列表(用命令string设置),且允许用户选择一个或多个项目。属性Min与Max控制着选择的模式。属性Value显示可选择的项目与包含着字符串列表中项目的索引;对于选择了多个项目则用向量表示。在任何的能改变属性Value值的、鼠标松开的操作之后,系统MATLAB将马上执行列表框的回调函数。因此,用户有必要增加一“Done”按钮,用于推迟当要多次选择项目时的操作。在执行列表框回调函数Callback属性之前,列表框中项目的选择有单击或双击之分,对应于将图形窗口属性SelectionType设置为normal或open。
弹出菜单——当组件被按下时,打开且显示一选择列表(用命令string设置)。当没有打开时,该组件显示当前的选择项。该组件对于用户想给其他用户提供一系列的互斥的选择项,又不想占用太多的区域。
普通按钮——当该组件被按下时,将执行一操作。要激活一按钮,只需在按钮上按下鼠标按钮。
单选按钮——该组件与校验框相类似,但它包含几个互斥的、而且相关的选项(例如在任意时刻,只能选择一个状态)。要激活某一单选按钮,只需在该组件上按下鼠标即可。被选中的组件同时显示出来。
滑块——该组件允许用户通过移动某一范围之内的滑块来输入一指定的数值。用户要移动一滑块,只需在滑块上按下鼠标不放,且在滑块方向上移动;或者是在滑槽内单击鼠标;或者是单击滑块条上的箭头。当松开鼠标后,滑块所在位置将与一数值对应。用户可以设置滑块的最大值、最小值与当前值等。
静态文本框——显示文本行。静态文本经常作为其他控制对象标签,以提供其他用户相关信息,或者是显示一滑块的数值。其他用户不能交互地改变静态文本,因此对于静态文本,没有相关的回调函数。
触发按钮——当该组件被单击且显示出它们的状态(on或者off)时,控制是否执行回调函数。
用法 handle = uicontrol(parent) 在父对象parent上生成一用户图形控制界面。用户界面控制对象都是图形窗口的子对象,所以当窗口中没有坐标轴时,同样可以放置控制组件于图形窗口中。
handle = uicontrol(…,'PropertyName',PropertyValue,…) 参量PropertyName为属性名,参量PropertyValue可为结构数组或者为单元数组,同时随意地返回刚生成的对象的句柄。当然用户可以通过命令set与get来设置与询问生成对象的属性值。
附:表7-12列出所有的用于命令uicontrol对象的属性名。每一属性名当作一描述该属性的链接。
表7-12
属性名 属性名含义 属性值
控制控件类型与显示
BackgroundColor 对象的背景颜色 有效值:ColorSpec
缺省值:与系统有关
Cdata 显示于对象之上的真颜色图片 有效值:矩阵
ForegroundColor 文本字体的颜色 有效值:ColorSpec
缺省值:[0 0 0](黑色)
SelectionHighlight 当对象被选中时突出显示 有效值:on、off
缺省值:on
String 用户控制界面的标签,也是列表框与弹出菜单中的项目 有效值:任意有效的字符串
Visible 用户界面控制是否可见 有效值:on、off
缺省值:on
关于控件对象的一般信息
Children 用户界面控制界面没有子对象
Enable 用户界面控制是否可用 有效值:on、inactive、off
缺省值:on
Parent 用户界面控制对象的父对象 有效值:图形窗口标量句柄
Selected 对象是否为选中状态 有效值:on、off
缺省值:off
SliderStep 滑块步长尺度 有效值:二维向量
缺省值:[0.001 0.1]
Style 用户界面控制对象的类型 有效值:pushbutton、edit、togglebutton、slider、text、radiobutton、popupmenu 、listbox、frame
缺省值:pushbutton
Tag 由用户指定的对象的标记符 有效值:任意有效字符串
TooltipString 对象的工具提示 有效值:任意有效字符串
Type 图形对象的类型 有效值:字符串(只读)
缺省值:uicontrol
UserData 用户指定的数据 有效值:矩阵
控制控件对象的位置
Position 用户界面控制对象的大小与位置 有效值:位置矩形
缺省值:[20 20 60 20]
Units 解释属性position向量的单位 有效值:pixels、inches、character、normalized、points、centimeters
缺省值:pixels
控制字体与标签
FontAngle 字符的倾斜度 有效值:normal、italic、oblique
缺省值:normal
FontName 字体系列名称 有效值:字符串
缺省值:与系统有关
FontSize 字体大小 有效值:一标量
缺省值:与系统有关
FontUnits 字体大小单位 有效值:pixels、normalized 、inches、centimeters、points
缺省值:points
FontWeight 文本字体的磅值 有效值:light、normal、demi、bold
缺省值:normal
HorizontalAlignment 标签字符串的对齐方式 有效值:left、center、left
缺省值:决定于用户界面控制的对象
String 用户控制界面的标签,也是列表框与弹出菜单中的项目 有效值:字符串
控制回调函数的执行
BusyAction 回调函数中断方式 有效值:cancel、queue
缺省值:queue
ButtonDownFcn 当按钮按下时执行的回调函数 有效值:字符串
Callback 控制操作 有效值:字符串
CreateFcn 在对象生成过程中执行的回调函数 有效值:字符串
DeleteFcn 在对象删除过程中执行的回调函数 有效值:字符串
Interruptible 回调函数中断的模式 有效值:on、off
缺省值:on
UIContextMenu 与界面控制中的对象相关的菜单(如按下鼠标右键) 有效值:句柄
关于当前状态的一般信息
ListboxTop 第一个显示于列表框中的项目的索引 有效值:标量
缺省值:[1]
Max 最大值(与用户界面控制对象有关) 有效值:标量
缺省值:与系统有关
Min 最小值(与用户界面控制对象有关) 有效值:标量
缺省值:与系统有关
Value 用户界面控制对象的当前值 有效值:标量或向量
缺省值:与系统有关
控制组件的访问
HandleVisibility 句柄是否可从命令窗口中与GUIs中访问 有效值:on、callback、off
缺省值:on
HitTest 组件是否可由鼠标单击选中 有效值:on、off
缺省值:on
命令7 uimenu
功能 生成图形窗口的菜单中的层次的菜单与下一级子菜单。即增加新的菜单于已经存在的菜单后面,当一菜单项被选中时,该菜单项与它的下一级菜单也将显示。也可用该命令生成与组件相关的菜单。
用法 handle = uimenu('PropertyName',PropertyValue,…) 在当前图形窗口菜单条上用指定的属性PropertyName与相应的属性值PropertyValue创建一菜单,同时将该菜单的句柄赋给handle。其中两个输入参量可以是结构数组或者是单元数组。用户界面菜单的回调函数属性定义了当用户激活菜单项时,进行的响应操作。
uimenu('PropertyName',PropertyValue,…) 效果同上,但不返回句柄值。
handle = uimenu(parent,'PropertyName',PropertyValue,…) 生成一父菜单的子菜单,或者是生成由parent指定的相关菜单中的菜单项目。若parent不是另外的用户界面菜单对象或用户界面相关菜单对象,而是一图形窗口,则系统将生成该图形窗口菜单条上的新的菜单。同时将生成的菜单赋值给句柄handle。
uimenu(parent,'PropertyName',PropertyValue,…) 效果同上,但不返回菜单的句柄。
附:表7-13列出了所有对uimenu对象有用的属性,分别按功能进行了分类。每一属性名作为该属性描述的索引。
表7-13
属性名 属性名描述 属性值
控制控件类型与显示
Checked 菜单检查记号 有效值:on、off
缺省值:off
ForegroundColor 文本的颜色 有效值:ColorSpec
缺省值:黑色[0 0 0]
Label 菜单标签 有效值:任何字符串
Separator 分隔线模式 有效值:on、off
缺省值:off
SelectionHighlight 对象选中时是否突出显示 有效值:on、off
缺省值:on
Visible 用户界面菜单是否可见 有效值:on、off
缺省值:on
关于对象的一般信息
Acceleratro 键盘等价字符 有效值:任何的字符
Children 子菜单的句柄 有效值:句柄向量
Enable 用户界面菜单是否可用 有效值:on、off
缺省值:on
Parent 用户界面菜单的父对象 有效值:句柄
Tag 用户指定的对象标记符 有效值:任何字符串
Type 图形对象类型 有效值:字符串read-only
缺省值:uimenu
UserData 用户指定数据 有效值:任何矩阵
控制对象的位置
Position 用户界面菜单的相对位置 有效值:标量
缺省值:[1]
控制回调程序的执行
BusyAction 回调程序的中断 有效值:cancel、queue
缺省值:queue
ButtoDownFcn 按钮按下回调程序 有效值:字符串
Callback 控制操作 有效值:字符串
CreateFcn 在对象生成期间执行的回调程序 有效值:字符串
DeleteFcn 在对象删除期间执行的回调程序 有效值:字符串
Interruptible 回调程序中断模式 有效值:on、off
缺省值:on
控制对象的访问
HandleVisibility 是否可从命令行上访问图形用户界面 有效值:on、callback、off
缺省值:on
HitTest 是否可用鼠标选择 有效值:on、off
缺省值:on