MATLAB图用户界面设计

1.图形窗口与坐标轴

图形对象句柄

  • 句柄的概念
    在MATLAb中,用句柄来标识对象,通过句柄访问相应对象的属性。
    MATLAB图用户界面设计_第1张图片
  • 访问图形对象
    对象句柄.属性名
    MATLAB图用户界面设计_第2张图片
  • 获取特定图形对象句柄的函数:
    gcf:获取当前图形窗口的句柄。
    gca:获取当前坐标轴的句柄。
    gco:获取最近被选中的图形对象的句柄。
    findobj:按照指定的属性来获取图形对象的句柄。

图形对象属性

  • 图形对象的常用公共属性:
    Children属性:该对象的所有子对象的句柄组成的一个向量
    Parent属性:该对象的父对象的句柄。
    Type属性:对象的类型,这是一个只读属性。
    Tag属性:用于给对象定义一个标识符。
    MATLAB图用户界面设计_第3张图片
  • 图形对象的常用动态属性:
    KeyPressFcn属性:定义按下键盘按键事件的响应
    CreateFcn属性:定义创建图形对象时做出的响应。
    DeleteFcn属性:定义取消图形对象时做出的响应。
    WindowButtonDownFcn或 ButtonDownFcn属性:定义单击鼠标左键事件的响应。

图形窗口的操作

  • 建立图形窗囗对象
    使用 figure函数,其调用格式为:
    句柄变量= figure(属性1属性值1属性2,属性值2,…)其中,属性用于设置图形窗囗的特征。
    句柄变量= figure
    figure(窗口句柄)
  • 图形窗口属性
    MenuBar属性:控制图形窗口是否具有菜单条,其取值为’none’或 ‘figure’。
    Name属性:指定图形窗口的标题。
    NumberTitlel属性:决定着在图形窗囗的标题中是否以“Figure n:”为标题前缀。
    Color属性:设定图形窗口背景的颜色。
    Position属性:定义了图形窗口对象在屏幕上的位置和大小,值是一个4元行向量[x,y,w,h]。
    Units属性:定义图形窗口使用的长度单位。
    ‘pixels’
    ‘inches’
    ‘centimeters’
    ‘points’
    ‘normalized’
    MATLAB图用户界面设计_第4张图片

坐标轴对象的操作

  • 建立坐标轴对象
    使用 axes函数,其调用格式为:
    句柄变量= axes(属性1属性值1属性2,属性值2,…)其中,属性用于设置坐标轴的特征。
    句柄变量= axes
    axes(坐标轴句柄)
  • 坐标轴对象的属性
    Position属性:定义坐标轴在图形窗口中的位置和大小。
    UniTs属性:定义坐标轴使用的度量单位,默认值是’normalized’。
    Box属性:决定坐标轴是否带有边框,可取值是’on’或’off’(默认值)。
    GridLineStyle属性:用于定义网格线的类型,取值可以是’:’(默认值)、’-’、’-.’、‘–‘或’none’。
    Title属性:用于对坐标轴标题对象进行操作,取值是通过title函数建立的标题对象的句柄。
    XLabel、 YLabel、 ZLabe属性:取值分别是通过 xlabel、ylabel、zlabe函数建立的坐标轴标签对象的句柄。
    XLim、YLim、 ZIim属性:用于定义各坐标轴的下限和上限,取值是向量[Lmin,Lmax],默认值为[0,1]。
    XScale、 YScale、 ZScale属性:用于定义各坐标轴的刻度类型,可取值是 ‘linear’(默认值)、‘log’。
    View属性:用于定义视点,取值是向量[az,el],az定义视点的方位角,el定义视点的仰角。
    ColorOrder属性:用于设置多条曲线的颜色顺序,是一个n*3矩阵,矩阵的每一行用RGB三元组表示一种颜色,默认n为7。
    MATLAB图用户界面设计_第5张图片

2.曲线与曲面对象

曲线对象

  • 建立曲线对象
    line函数的调用格式为:
    句柄变量= line(x, y, z,属性1,属性值1,属性2.属性值2.…)
    其中,x、y、z存储数据点的坐标,与plot、pl3函数含义相同。
  • 曲线对象常用属性
    Color属性:定义曲线的颜色,默认值为[0 0 0]。
    LineStyle属性:定义线型,默认值为"-’。
    LineWidth属性:定义线宽,默认值为0.5磅。
    Marker属性:定义数据点标记符号,默认值为’none’。
    MarkerSize属性:定义数据点标记符号的大小,默认值为6磅。
    XData、 YData、 ZData属性:设置3个坐标轴的数据源。
    MATLAB图用户界面设计_第6张图片

曲面对象

  • 建立曲面对象
    surface函数的调用格式为:
    句柄变量= surface(x,y.z,c,属性1.属性值,属性2.属性值2.…)
    其中,x、y、z存储数据点的坐标,与surf函数含义相同;c用于指定在不同高度下的曲面颜色。
  • 与曲面形态有关的属性
    FaceColor属性:定义曲面网格片的颜色,可取值为:
    ‘flat’:每一个网格片用单一颜色填充
    ‘interp’:用渐变方式填充网格片。
    ‘none’:网格片无颜色。
    ‘texturemap’’:用Cdata属性定义的颜色填充网格片。
    RGB向量或代表颜色的字符。
    EdgeColor属性:定义曲面网格线的颜色。
    MATLAB图用户界面设计_第7张图片

光照处理

  • 创建光源对象
    light函数的调用格式为:
    对象句柄=light(属性1,属性值1,属性2,属性值2,…)
    其中,属性指定光源的特性。
  • 光源对象的属性
    Color属性:设置光的颜色。
    Style属性:设置光源类型,其取值为 ‘infinite’(默认值)或’local’。
    Position属性:指定光源位置。
  • 设置光照模式
    lighting命令格式为:
    lighting选项
    其中,选项可取值为:
    flat
    gouraud
    phong
    none
    MATLAB图用户界面设计_第8张图片

图形对象的反射特性

  • SpecularStrength属性:控制对象表面镜面反射的强度。
  • DiffuseStrength属性:控制对象表面漫反射的强度。
  • AmbientStrength属性:确定环境光的强度。
  • SpecularExponent,属性:控制镜面反射指数。
  • BackFaceLighting属性:控制对象内表面和外表面的差别。
    ‘unlit’
    ‘lit’
    ‘reverselit’(默认值)
    MATLAB图用户界面设计_第9张图片

3.图形用户界面设计方法

图形用户界面的组成

  • 图形用户界面( Graphical User Interface,GUI):用户与计算机进行信息交流的窗口。
  • 设计图形用户界面的方法
    调用建立用户界面控件的函数。
    使用 MATLAB提供的GUDE工具进行可视化设计。

控件对象及其操作

(1)常用控件

  • 输入和输出类控件:编辑框、静态文本、列表框、滑动条等。
  • 实施确认、选择操作类控件:按钮、双位按钮、单选按钮、复选框等。

(2)建立控件对象
uncontrol函数用于建立控件对象,其调用格式为:
句柄变量= uncontrol(图形窗口句柄,属性1,属性值1,属性2,属性值2)…
其中,属性及其取值决定了控件的特征。若省略图形窗口句柄,默认在当前图形窗口建立控件对象。

(3)控件对象的基本控制属性

  • Style属性:定义控件对象的类型,例如 'pushbutton’表示按钮对象,'edit’表示编辑框,等等。
  • String属性:定义控件对象的说明文字。
  • Tog属性:标识控件对象。
  • Enable属性:控制控件对象是否可用。
  • Position属性:定义控件对象的位置和大小,其取值形式为[x,y,w,h]。
  • Callback属性:属性值是描述命令的字符串或函数句柄。当选中控件时,系统将自动执行字符串描述的命令或调用句柄所代表的函数,实施相关操作。
    MATLAB图用户界面设计_第10张图片
    回调函数的定义格式:
    function 函数名(sourse,eventdata)

    end
    MATLAB图用户界面设计_第11张图片
    MATLAB图用户界面设计_第12张图片

菜单对象

(1)建立菜单对象
uimenu函数用于创建、设置、修改菜单,其调用格式为:
一级菜单项句柄= uimenu(图形窗口句柄,属性1,属性值1,属性2,属性值2,…)
子菜单项句柄= uimenu(上级菜单项句柄,属性1,属性值1,属性2,属性值2).…

(2)菜单属性

  • Label属性:用于定义菜单项的名字。
  • Accelerator属性:用于定义菜单项的快捷键。
  • Checked属性:指示菜单项是否已选中。
  • Enable属性:控制菜单项的可选择性。
  • Separator属性:用于在菜单中添加分隔线。
    MATLAB图用户界面设计_第13张图片
    MATLAB图用户界面设计_第14张图片

4.用户界面设计工具

图形用户界面设计窗口

(1)打开GUIDE

  • 在 MATLAB命令行窗口输入guide命令。
  • 在 MATLAB主窗口中选择“主页”选项卡,单击工具栏的“新建”命令按钮,再选择“应用程序”下的GUIDE命令。

(2)图形用户界面设计模板
MATLAB图用户界面设计_第15张图片

  • Blank GUI (Default)
  • GUI with Uicontrols
  • GUI with Axes and Menu
  • Modal Question Dialog

(3)图形用户界面设计窗口
MATLAB图用户界面设计_第16张图片

MATLAB图用户界面设计_第17张图片

图形用户界面设计工具

MATLAB图用户界面设计_第18张图片
(1)对象属性检查器
MATLAB图用户界面设计_第19张图片
(2)菜单编辑器

  • 菜单编辑器的构成
    工具栏
    菜单列表
    菜单属性面板
  • 图形窗口的MenuBar属性
    figure
    none
    MATLAB图用户界面设计_第20张图片
    MATLAB图用户界面设计_第21张图片
    (3)对象浏览器
    MATLAB图用户界面设计_第22张图片

回调属性与回调函数

(1)回调属性

  • Callback属性:按钮类控件和菜单项的单击事件的默认回调属性。
  • ButtonDownFcn属性:定义单击鼠标键按下的响应。
  • KeyPressFcn属性:定义键盘键按下的响应。
  • SelectionChangeFcn属性:定义改变选项的响应。

(2)回调函数框架
function对象标识_Callback(hObject, eventdata, handles)
其中, hObject为发生事件的源控件, eventdata为事件数据, handles保存图形界面中所有对象的句柄.

(3)回调函数举例

  • “绘图”按钮的Callback函数定义
    MATLAB图用户界面设计_第23张图片
  • 菜单项的回调函数
    MATLAB图用户界面设计_第24张图片

5.APP设计工具

App Designer的使用

(1)打开 App Designer

  • 在 MATLAB命令行窗口输入 appdesigner命令。
  • 在 MATLAB主窗口中选择“主页”选项卡,单击工具栏“新建命令按钮,再选择“应用程序”下的“ App Designer”命令。

(2)App Designer窗口

  • 快速访问工具栏
  • 功能区
  • App编辑器
    MATLAB图用户界面设计_第25张图片

(3)App编辑器

  • 设计视图:用于编辑用户界面。
  • 代码试图:用于编辑、调试、分析代码。

App组件

  • 常用组件
  • 容器组件
  • 仪器组件
    MATLAB图用户界面设计_第26张图片

App程序

(1)类的基本结构
MATLAB图用户界面设计_第27张图片
(2)访问权限

  • private——私有的
    私有成员只允许在本类中访问。
  • public——公有的
    公有成员可用于与App的其他类共享数据。

(3)运行App

  • 在App设计器窗口中按"F5"键或单击工具栏上的“运行”命令按钮。
  • 在MATLAB主窗口的当前文件夹双击 MLAPP文件。
  • 在命令行窗口输入 MLAPP文件的主文件名。

(4)打包App应用
选中App Designer窗口的“设计器”选项卡,单击工具栏中的“App应用打包”按钮,弹出“应用程序打包”对话框。

MATLAB图用户界面设计_第28张图片

6.图形用户界面应用举例

GUIDE设计实例

MATLAB图用户界面设计_第29张图片
MATLAB图用户界面设计_第30张图片
MATLAB图用户界面设计_第31张图片
在这里插入图片描述
MATLAB图用户界面设计_第32张图片
MATLAB图用户界面设计_第33张图片
MATLAB图用户界面设计_第34张图片
MATLAB图用户界面设计_第35张图片
MATLAB图用户界面设计_第36张图片
MATLAB图用户界面设计_第37张图片
MATLAB图用户界面设计_第38张图片
MATLAB图用户界面设计_第39张图片

App Designer设计实例

MATLAB图用户界面设计_第40张图片
MATLAB图用户界面设计_第41张图片
MATLAB图用户界面设计_第42张图片
MATLAB图用户界面设计_第43张图片
MATLAB图用户界面设计_第44张图片
MATLAB图用户界面设计_第45张图片
MATLAB图用户界面设计_第46张图片
MATLAB图用户界面设计_第47张图片
MATLAB图用户界面设计_第48张图片

你可能感兴趣的:(MATLAB)