




已阅读5页,还剩46页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2020年4月19日星期日 1 第9章MATLAB图形句柄9 1图形对象及其句柄9 2图形对象属性9 3图形对象的创建 2020年4月19日星期日 2 9 1图形对象及其句柄绘图函数将不同的曲线或曲面绘制在图形窗口中 而图形窗口由不同的对象 如坐标轴 曲线 曲面或文字等 组成的图形界面 Matlab给每个图形对象分配一个标识符 称为句柄 以后可以通过该句柄对该图形对象的属性进行设置 也可以获取有关的属性值 从而能够更加自主地绘制各种图形 1 图形对象MATLAB的图形对象包括计算机屏幕 图形窗口 坐标轴 用户菜单 用户控件 曲线 曲面 文字 图像 光源 区域块和方框等 系统将每一个对象按树型结构组织起来 每个具体图形不必包含每个对象 但每个图形必须具备根屏幕和图形窗口 2020年4月19日星期日 3 2020年4月19日星期日 4 2020年4月19日星期日 5 2020年4月19日星期日 6 2 图形对象句柄MATLAB在创建每一个图形对象时 都为该对象分配唯一的一个值 称其为图形对象句柄 Handle 句柄是图形对象的唯一标识符 不同对象的句柄不可能重复和混淆 计算机屏幕作为根对象由系统自动建立 其句柄值为0 而图形窗口对象的句柄值为一正整数 并显示在该窗口的标题栏 其他图形对象的句柄为浮点数 MATLAB提供了若干个函数用于获取已有图形对象的句柄 如 figure line text surface axes xlabel ylabel zlabel title 2020年4月19日星期日 7 常用图形对象的句柄函数gcf获取当前图形窗口的句柄gca获取当前坐标轴的句柄例 绘制曲线并查看有关对象的句柄 x 0 0 1 pi 2 pi y sin x h1 gcfh1 1 h2 gcah2 151 0057 2020年4月19日星期日 8 9 2图形对象属性1 属性名与属性值MATLAB给每种对象的每一个属性规定了一个名字 称为属性名 而属性名的取值称为属性值 2 属性的操作set函数的调用格式为 set 句柄 属性名1 属性值1 属性名2 属性值2 其中句柄用于指明要操作的图形对象 如果在调用set函数时省略全部属性名和属性值 则将显示出句柄所有的允许属性 set 0 set gcf set gca 2020年4月19日星期日 9 例 绘制二维曲线 通过选择不同的选项可以设置曲线的颜色 线型和数据点的标记符号 x 0 pi 10 2 pi h plot x sin x pauseset h color r linestyle marker P 2020年4月19日星期日 10 获取句柄的属性值get函数 get 句柄 属性名 如果在调用get函数时省略属性名 则将返回句柄的所有属性值例 x 0 pi 10 2 pi h plot x sin x set h color r linestyle marker P get h marker 结果 ans pentagram 2020年4月19日星期日 11 9 3图形对象的创建9 3 1图形窗口对象建立图形窗口对象使用figure函数 其调用格式为 句柄变量 figure 属性名1 属性值1 属性名2 属性值2 MATLAB通过对属性的操作来改变图形窗口的形式 也可以使用figure函数按MATLAB缺省的属性值建立图形窗口 figure或句柄变量 figure要关闭图形窗口 使用close函数 其调用格式为 close 窗口句柄 另外 closeall命令可以关闭所有的图形窗口 clf命令则是清除当前图形窗口的内容 但不关闭窗口 2020年4月19日星期日 12 例 x 0 pi 10 2 pi h plot x sin x set h color r linestyle marker P clfh1 figureh2 figureclose h2 运行结果 2020年4月19日星期日 13 MATLAB为每个图形窗口提供了很多属性 这些属性及其取值控制着图形窗口对象 常用属性如下 MenuBar属性 Name属性 NumberTitle属性 Resize属性 Position属性 Units属性 Color属性 Pointer属性 KeyPressFcn 键盘键按下响应 WindowButtonDownFcn 鼠标键按下响应 WindowButtonMotionFcn 鼠标移动响应 及WindowButtonUpFcn 鼠标键释放响应 等 2020年4月19日星期日 14 MenuBar属性 该属性的取值可以是figure 缺省值 或none 用来控制图形窗口是否应该具有菜单条 如果它的属性为none 则表示该图形窗口没有菜单条 这是用户可以采用uimenu函数来加入自己的菜单条 如果属性值为figure 则该窗口将保持图形窗口默认的菜单条 这时也可以采用uimenu函数在原默认的图形窗口菜单后面添加新的菜单项 Name属性 该属性的取值为字符串 为图形的标题 它的缺省值为空 标题形式为 figure1 标题 MumberTitle属性 取值为on 缺省值 或off 决定图形窗口中是否以Figuren为标题的前缀 Resize属性 取值为on 缺省值 或off 决定着在图形窗口建立后可否用鼠标改变该窗口的大小 2020年4月19日星期日 15 Position属性 该属性的取值由4个元素构成 abcd 决定图形的位置与大小 其中a b分别为窗口左下角的横纵坐标值 c d分别为窗口的宽度和高度 它们的单位由units属性决定 Units属性 该属性的取值为下列字符串的一种 piexl 像素 为缺省值 normalized 相对单位 inches 英寸 centimeters 厘米 points 磅 2020年4月19日星期日 16 菜单设计函数建立用户菜单要建立用户菜单可用uimenu userinterfacesmenu 函数 因其调用方法不同 该函数可以用于建立一级菜单项和子菜单项 建立一级菜单项的函数调用格式为 一级菜单项句柄 uimenu 图形窗口句柄 属性名1 属性值1 属性名2 属性值2 建立子菜单项的函数调用格式为 子菜单项句柄 uimenu 一级菜单项句柄 属性名1 属性值1 属性名2 属性值2 2020年4月19日星期日 17 例 建立一个图形窗口 该图形窗口没有菜单条 标题名称为 我的图形窗口 起始于屏幕左下角 宽度和高度分别为450像素点和250像素点 背景颜色为黑色 且当用户从键盘按下任意一个键时 将在该图形窗口绘制出正弦曲线 并完成如图所示的菜单功能 x 0 pi 20 2 pi y sin x figure Menubar none Name 我的图形窗口 position 11450250 NumberTitle off color k keypressfcn h plot x y h0 uimenu gcf label 我的菜单 h1 uimenu h0 label 背景色 蓝色 callback set gcf Color blue 制作下拉菜单项blueh2 uimenu h0 label 背景色 红色 callback set gcf Color red 制作下拉菜单Redh3 uimenu h0 label 显示主菜单 callback set gcf Menubar figure h4 uimenu h0 label 隐藏主菜单 callback set gcf Menubar none h5 uimenu h0 label 曲线颜色 红色 callback set h color r 2020年4月19日星期日 18 2020年4月19日星期日 19 菜单设计另外实例例 建立系统菜单 菜单条中含有3个菜单项 Plot Option和Quit Plot中有SineWave和CosineWave两个子菜单项 分别控制在本图形窗口画出正弦和余弦曲线 Option菜单项的内容中Gridon和Gridoff控制给坐标轴加网格线 Boxon和Boxoff控制给坐标轴加边框 而且这4项只有在画有曲线时才是可选的 WindowColor控制图形窗口背景颜色 Quit控制是否退出系统 2020年4月19日星期日 20 screen get 0 ScreenSize W screen 3 H screen 4 figure Color 1 1 1 Position 0 2 H 0 2 H 0 5 W 0 3 H Name 图形演示系 NumberTitle off MenuBar none 定义Plot菜单项hplot uimenu gcf Label 2020年4月19日星期日 21 hgon uimenu hoption Label 2020年4月19日星期日 22 2020年4月19日星期日 23 快捷菜单快捷菜单是用鼠标右键单击某对象时在屏幕上弹出的菜单 这种菜单出现的位置是不固定的 而且总是和某个图形对象相联系 在MATLAB中 可以使用uicontextmenu函数和图形对象的UIContextMenu属性来建立快捷菜单 具体步骤为 1 利用uicontextmenu函数建立快捷菜单 2 利用uimenu函数为快捷菜单建立菜单项 3 利用set函数将该快捷菜单和某图形对象联系起来 例 绘制曲线y 2sin 5x sinx 并建立一个与之相联系的快捷菜单 用以控制曲线的线型和曲线宽度 2020年4月19日星期日 24 x 0 pi 100 2 piy 2 sin 5 x sin x h1 plot x y hc uicontextmenuhls uimenu hc label 线型 hlw uimenu hc label 线宽 uimenu hls label 虚线 callback set h1 linestyle uimenu hls label 实线 callback set h1 linestyle uimenu hlw label 加宽 callback set h1 linewidth 5 uimenu hlw label 变细 callback set h1 linewidth 1 set h1 uicontextmenu hc 2020年4月19日星期日 25 2020年4月19日星期日 26 例 x 0 pi 20 2 pi y sin x h0 plot x y h1 uicontextmenu xx uimenu h1 Label 线型 xk uimenu h1 Label 线宽 ys uimenu h1 Label 颜色 uimenu xx Label 虚线 Callback set h0 LineStyle uimenu xx Label 实线 Callback set h0 LineStyle uimenu xx Label 点划线 Callback set h0 LineStyle uimenu xx Label 双划线 Callback set h0 LineStyle uimenu xk Label 宽 Callback set h0 LineWidth 5 uimenu xk Label 窄 Callback set h0 LineWidth 0 5 uimenu ys Label 蓝色 Callback set h0 Color b uimenu ys Label 绿色 Callback set h0 Color g uimenu ys Label 红色 Callback set h0 Color r uimenu ys Label 青色 Callback set h0 LineColor c uimenu ys Label 品红色 Callback set h0 Color m uimenu ys Label 黄色 Callback set h0 Color y uimenu ys Label 黑色 Callback set h0 Color k uimenu ys Label 白色 Callback set h0 Color w set h0 UIContextMenu h1 2020年4月19日星期日 27 2020年4月19日星期日 28 9 3 2坐标轴对象建立坐标轴对象使用axes函数 其调用格式为 句柄变量 axes 属性名1 属性值1 属性名2 属性值2 Axes常用属性 Box属性 该属性的取值为on或off 缺省值 它决定坐标轴是否带有边框 GridLineStyle属性 该属性的取值可以是 缺省值 或 none 该属性定义网格线的线型 2020年4月19日星期日 29 Position属性 该属性的取值由4个元素构成 abcd 这个向量在图形窗口中决定一个矩形区域 坐标轴位于其中 该矩形区域的左下角相对于图形窗口左下角的坐标为 a b 矩形的高度和宽度为c和d 它们的单位由units属性决定 Units属性 该属性的取值为下列字符串的一种 normalized 相对单位 为缺省值 inches 英寸 centimeters 厘米 points 磅 Title属性 该属性的取值是坐标轴标题文字对象句柄 可以通过该属性对坐标轴标题文字对象进行操作 如 h get gca Title 获得标题文字对象句柄set h color r 设置标题文字颜色 2020年4月19日星期日 30 xlabel ylabel zlabel 属性 3种属性的取值分别是x y z轴的说明文字句柄 其操作与title句柄相同 如 h get gca xlabel set h string valueofxaxis Xlim YLim ZLim属性 3种属性的取值都是具有两个元素的数值向量 3中属性分别定义各坐标轴的上下限 缺省值为 0 1 以前介绍的axis函数实际上是对这些属性的直接赋值 2020年4月19日星期日 31 XScale YScale ZScale属性 3种属性的取值都是 Linear 缺省值 或 log 这些属性定义各坐标轴的刻度类型 View属性 该属性的取值是两个元素的数值向量 定义视点方向 2020年4月19日星期日 32 clcx 0 pi 20 2 pi y sin x plot x y h get gca title set h string abc color r BackgroundColor g FontAngle italic Fontsize 50 h1 get gca xlabel set h1 string x color b Fontsize 30 h2 get gca ylabel set h2 string y color k Fontsize 40 set h set h1 2020年4月19日星期日 33 例 利用坐标轴对象实现图形窗口的任意分割 利用axes函数可以在不影响图形窗口上其他坐标轴的前提下建立一个新的坐标轴 从而实现图形窗口的任意分割 clfx 0 pi 10 2 piy sin x axes position 0 2 0 2 0 2 0 7 plot y x gridonset gca gridlinestyle axes position 0 4 0 2 0 5 0 5 t 0 pi 100 20 pi 2020年4月19日星期日 34 x sin t y cos t z t sin t cos t plot3 x y z axes position 0 55 0 6 0 25 0 3 X Y meshgrid 8 0 5 8 Z sin sqrt X 2 Y 2 sqrt X 2 Y 2 eps mesh X Y Z 2020年4月19日星期日 35 2020年4月19日星期日 36 仔细体会下面所有语句的作用 clcclearh0 get 0 screensize 获得屏幕尺寸x 0 0 05 10 y sin x plot x y f1 figure posi h0 3 4h0 4 4h0 3 2h0 4 2 居中plot x y 2 holdon plot x y r close 体会用法 关闭当前窗口 get gcf posi f2 figure posi 11h0 3 2h0 4 2 h2 get f2 posi axes position 0 050 50 90 4 其单位是相对单位 最大值为1plot x y r axes position 0 050 050 90 4 以下看局部图像 x 4 5 0 05 5 y sin x plot x y r close f1 close closeall 2020年4月19日星期日 37 9 3 3曲线对象建立曲线对象使用line函数 其调用格式为 句柄变量 line x y z 属性名1 属性值1 属性名2 属性值2 其中对x y z的解释与高层曲线函数plot和plot3等一样 每个曲线对象也具有很多属性 除公共属性外 其他常用属性如下 Color属性 LineStyle属性 LineWidth属性 Marker属性 MarkerSize属性等 2020年4月19日星期日 38 Color属性 该属性的取值是代表某颜色的字符或RGB值 定义曲线的颜色 Linestyle属性 定义线型 Linewidth属性 定义线宽 缺省值为0 5磅 Marker属性 定义数据点标记符号 缺省值为none Markersize属性 定义数据点符号的大小 缺省值为6磅 Xdata Ydata zdata属性 3种属性的取值都是数值向量或矩阵 分别代表曲线对象的3个坐标轴数据 2020年4月19日星期日 39 例 利用曲线对象绘制曲线 t 0 pi 20 2 pi y1 sin t y2 cos t figh figure position 30 100 800 350 axes Gridlinestyle xlim 0 2 pi ylim 1 1 line xdata t ydata y1 linewidth 2 line t y2 gridon 2020年4月19日星期日 40 以上程序运行等同于 t 0 pi 20 2 pi y1 sin t y2 cos t figh figure position 30 100 800 350 axes Gridlinestyle xlim 0 2 pi ylim 1 1 h1 plot t y1 set h1 linewidth 2 color k holdonplot t y2 gridon 2020年4月19日星期日 41 2020年4月19日星期日 42 注 line ydata y xdata x line xdata x ydata y line x y plot xdata x ydata y 不正确 2020年4月19日星期日 43 9 3 4文字对象使用text函数可以根据指定位置和属性添加文字说明 并保存句柄 该函数调用格式为 句柄变量 text x y z 说明文字 属性名1 属性值1 其中x y z为位置坐标 说明文字中除使用标准的ASCII字符外 还可使用LaTeX格式的控制字符 h text 0 5 0 5 gamma rho 2 文字对象的常用属性如下 Color属性 string属性 Fontsize属性 Rotation属性 2020年4月19日星期日 44 color属性 文字对象颜色 String属性 文字标注的内容 Fontsize属性 定义文字的大小 缺省值为10磅 Rotation属性 该属性的取值是数值量 缺省值为0 它定义文字对象的旋转角度 取正值表示逆时针方向旋转 取负值表示顺时针方向旋转 2020年4月19日星期日 45 例利用曲线对象绘制曲线并利用文字对象完成标注 x pi 0 1 piy1 sin x y2 cos x figure position 30 100 800 358 h line x y1 linestyle color g line x y2 linestyle color b xlabel pi leq theta leq pi ylabel sin theta text pi 4 sin pi 4 leftarrowsin pi div4 fontsize 20 set h color r linewidth 2 2020年4月19日星期日 46 2020年4月19日星期日
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 环境氛围感知研究-洞察及研究
- 物联网设备安全中的AI应用-洞察及研究
- 无烟厨房设备技术革新趋势-洞察及研究
- 二零二五年度企业文化VI设计合同范本
- 2025年MCN艺人版权授权及收益分成合同
- 2025年度大数据分析与挖掘服务合同
- 二零二五年度古建筑修缮劳务合同规范模板
- 2025年度工业自动化设备安装与培训外包合同
- 二零二五年安居型住房施工合同终止及后处理合同
- 初中体育与健康-篮球课程大纲
- 自适应前照灯控制系统
- 电梯招标文件示范文本
- 上海市安装工程预算定额(2000)工程量计算规则
- 街道、镇、区道路保洁及垃圾转运服务采购项目服务方案(投标方案)
- GB/T 16886.10-2024医疗器械生物学评价第10部分:皮肤致敏试验
- 医院感染管理制度制度汇编
- 幼儿园卫生检查表
- 水泵采购投标方案(技术方案)
- 2023-2024学年深圳市盐田区数学四下期末学业水平测试试题含解析
- 虚拟股权激励方案(模板)
- 19S406建筑排水管道安装-塑料管道
评论
0/150
提交评论