




已阅读5页,还剩65页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六章MATLAB图形句柄 6 1图形对象及其句柄6 2图形窗口与坐标轴6 3低层绘图操作 第四章已介绍很多MATLAB高层绘图函数 这些函数都是将不同的曲线或曲面绘制在图形窗口中 而图形窗口也就是由不同图形对象 如坐标轴 曲线 曲面或文字等 组成的图形界面 MATLAB给每个图形对象分配一个标识符 称为句柄 以后可以通过该句柄对该图形对象的属性进行设置 也可以获取有关属性 从而能够更加自主地绘制各种图形 直接对图形句柄进行操作的绘图方法称为低层绘图操作 相对于高层绘图 低层绘图操作控制和表现图形的能力更强 事实上 MATLAB的高层绘图函数都是利用低层绘图函数建立起来的 相当于系统为用户做了许多细节性的工作 用起来很方便 但有时单靠高层绘图不能满足要求 例如 绘制特殊图形 建立图形用户界面等 需要对图形句柄操作 6 1图形对象及其句柄1 图形对象MATLAB中的每一个具体的图形都是由若干个不同的图形对象组成的 所有的图形对象都按父对象和子对象的方式组成层次结构 如图9 1 图形对象的层次结构 每个具体图形不一定包含全部对象 但必须带有计算机屏幕和图形窗口对象 计算机屏幕是产生其他对象的基础 称为根对象 一个图形窗口对象有3种不同类型的子对象 坐标轴 用户界面对象和标注对象 其中用户界面对象用于构建图形用户界面 在第10章详细介绍 坐标轴有3种子对象 核心对象 绘图对象和组对象 核心对象有7种不同类型的子对象 曲线 曲面 文本 图像 区域块 方块和光源 对坐标轴及其3种子对象的操作即构成低层绘图操作 也就是对图形句柄的操作 2 图形对象句柄MATLAB在创建每一个图形对象时 都为该对象分配唯一的一个值 称其为图形对象句柄 Handle 句柄是图形对象的唯一标识符 不同对象的句柄不可能重复和混淆 计算机屏幕作为根对象由系统自动建立 其句柄值为0 而图形窗口对象的句柄值为一正整数 并显示在该窗口的标题栏 其他图形对象的句柄为浮点数 MATLAB提供了若干个函数用于获取已有图形对象的句柄 常用的获取图形对象句柄的对象 例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 坐标轴上曲线的句柄 图形对象的句柄由系统自动分配 每次分配的值不一定相同 多次运行例1的程序以便比较 在获取对象的句柄后 可以通过句柄来设置或获取对象的属性 3 图形对象属性1 属性名与属性值MATLAB给每种对象的每一个属性规定了一个名字 称为属性名 而属性名的取值称为属性值 在属性名的写法中 不区分字母的大小写 而且在不引起歧义的前提下 属性名不必全写 如 用lines代替LineStyle 此外 属性名要用单撇号括起来 2 属性的操作当创建一个对象时 必须给对象的各种属性赋予必要的属性值 否则 系统自动使用缺省属性值 用户可以通过set函数重新设置对象属性 同时也可以通过get函数获取这些属性值 set函数的调用格式为 set 句柄 属性名1 属性值1 其中句柄用于指明要操作的图形对象 如果在调用set函数时省略全部属性名和属性值 则将显示出句柄所有的允许属性 绘制二维曲线时 通过选择不同的选项可以设置曲线的颜色 线型和数据点的标记符号 下面用图形句柄操作来实现 绘制正弦曲线的程序如下 clc clear closeall x 0 pi 10 2 pi h plot x sin x set h color r linestyle Marker p clc clear closeall x 0 pi 10 2 pi plot x sin x rp 用图形句柄操作的方法绘制以上正弦曲线时 先用缺省属性绘制曲线并保存曲线句柄 然后通过改变曲线的属性来设置曲线的颜色 线型和数据点的标记符号 当然 还有很多其他属性 可对曲线作进一步的控制 用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 对象的公共属性图形对象具有各种各样的属性 有些属性是所有对象共同具备的 有些则是各对象所特有的 对象常用的公共属性 Children属性 Parent属性 Tag属性 Type属性 UserData属性 Visible属性 ButtonDownFcn属性 CreateFcn属性 DeleteFcn属性 Children属性 该属性的取值是该对象所有子对象的句柄组成的一个向量 get gca children 得到当前坐标轴对象的子对象 曲线 的句柄值 Parent属性 该属性的取值是该对象的父对象的句柄 get gcf parent 得到图形窗口的父对象 计算机屏幕 的句柄值 Tag属性 该属性的取值是一个字符串 它相当于给该对象定义了一个标识符 定义了Tag属性后 在任何程序中都可以通过findobj函数获取该标识符所对应图形的句柄 如 clc clear closeall x 0 pi 10 2 pi h plot x sin x set h tag flag1 hf findobj 0 tag flag1 Type属性 表示该对象的类型 显然 该属性的取值是不可改变的 如 clc clear closeall x 0 pi 10 2 pi h plot x sin x get h type ans line UserData属性 该属性的取值是一个矩阵 缺省值为空矩阵 在程序设计中 可以将一个图形对象有关的比较重要的数据存储在这个属性中 借此可以达到数据传递的目的 如 set 0 userdata 123 456 get 0 userdata ans 123456 Visible属性 该属性的取值是on 缺省值 或off 当它的值为off时 可以用来隐藏该图形窗口的动态变化过程 如窗口大小的变化 颜色的变化等 如 peakspause 5 set gcf visible off pause 5 set gcf visible on ButtonDownFcn属性 该属性的取值是一个字符串 一般是某个M文件名或一小段Matlab程序 当鼠标指针位于对象之上 用户按下鼠标键时执行的字符串 如 clc clear closeall figureset gcf buttondown example4 10 例2在同一坐标下绘制红 绿两根不同曲线 希望获得绿色曲线的句柄 并对其进行设置 clc clear closeall x 0 pi 50 2 pi y sin x z cos x plot x y r x z g 绘制两条不同的曲线 Hl get gca children 获取两曲线的句柄向量Hl fork 1 size Hl ifget Hl k color 010 010 代表绿色 Hlg Hl k endendpause 便于观察设置前后的效果 set Hlg linestyle marker p 6 2图形窗口与坐标轴 除根对象外 所有图形对象都可以由与之同名的低层函数创建 所创建的对象置于适当的父对象之中 当父对象不存在时 Matlab会自动创建它 如 Line函数 创建对象的低层函数调用格式类似 关键要了解对象的属性及其取值 前面已介绍各对象的公共属性 下面介绍图形窗口和坐标轴的创建方法及特殊属性 6 2 1图形窗口对象建立图形窗口对象使用figure函数 其调用格式为 句柄变量 figure 属性名1 属性值1 属性名2 属性值2 MATLAB通过对属性的操作来改变图形窗口的形式 也可以使用figure函数按MATLAB缺省的属性值建立图形窗口 figure或句柄变量 figure要关闭图形窗口 使用close函数 其调用格式为 close 窗口句柄 另外 closeall命令可以关闭所有的图形窗口 clf命令则是清除当前图形窗口的内容 但不关闭窗口 MATLAB为每个图形窗口提供了很多属性 这些属性及其取值控制着图形窗口对象 除公共属性外 其他常用属性如下 MenuBar属性 Name属性 NumberTitle属性 Resize属性 Position属性 Units属性 Color属性 Pointer属性 KeyPressFcn 键盘键按下响应 WindowButtonDownFcn 鼠标键按下响应 WindowButtonMotionFcn 鼠标移动响应 及WindowButtonUpFcn 鼠标键释放响应 等 MenuBar属性 该属性的取值可以是figure 缺省值 或none 用来控制图形窗口是否应该具有菜单条 如 clc clear closeall figure pauseset gcf menubar none pauseset gcf menubar figure Name属性 该属性的取值可以是任何字符串 它的缺省值为空 如 clc clear closeall figure pauseset gcf name Mypictures pauseset gcf name NumberTitle属性 该属性的取值是on 缺省值 或off 决定图形窗口标题是否以 FigureNo n 为标题前缀 clc clear closeall figure pauseset gcf numbertitle off pauseset gcf numbertitle on Resize属性 该属性的取值是on 缺省值 或off 决定图形窗口建立后可否用鼠标改变该窗口的大小 如 clc clear closeall figure pauseset gcf resize off pauseset gcf resize on Position属性 该属性的取值是一个由4个元素构成的向量 其形式为 n1 n2 n3 n4 向量定义了图形窗口对象在屏幕上的位置和大小 其中n1和n2分别为窗口左下角的横纵坐标值 n3和n4分别为窗口的宽度和高度 单位由units属性决定 如 clc clear closeall figure pauseset gcf position 11500300 pauseset gcf position 1001005030 pauseset gcf position 50050030040 pauseset gcf position 360565523359 Units属性 该属性的取值可以是下列字符串中的任何一种 pixel 像素 为缺省值 normalized 相对单位 inches 英寸 centimeters 厘米 和points 磅 clc clear closeall figure set gcf units get gcf units Color属性 该属性的取值是一个颜色值 既可以用字符表示 也可以用RGB三元组表示 缺省值为 0 80 80 8 clc clear closeall figure pauseset gcf color r pauseset gcf color k pauseset gcf color g pauseset gcf color 111 pauseset gcf color 0 6701 pauseset gcf color 0 8 8 8 例3建立一个图形窗口 该图形窗口没有菜单条 标题名称为 我的图形窗口 起始于屏幕左下角 宽度和高度分别为450像素点和250像素点 背景颜色为绿色 且当用户从键盘按下任意一个键时 将在该图形窗口绘制出正弦曲线 clc clear closeall x linspace 0 2 pi 60 y sin x hf figure color 010 position 11450250 name 我的图形窗口 numbertitle off menubar none keypressfcn plot x y axis 0 2 pi 1 1 WindowButtonDownFcn 鼠标键按下响应如 clc clear closeall x linspace 0 2 pi 60 y sin x hf figure color 010 position 11450250 name 我的图形窗口 numbertitle off menubar none windowbuttondownfcn plot x y axis 0 2 pi 1 1 WindowButtonUpFcn 鼠标键释放响应如 clc clear closeall x linspace 0 2 pi 60 y sin x hf figure color 010 position 11450250 name 我的图形窗口 numbertitle off menubar none windowbuttonupfcn plot x y axis 0 2 pi 1 1 WindowButtonMotionFcn 鼠标移动响应如 clc clear closeall x linspace 0 2 pi 60 y sin x hf figure color 010 position 11450250 name 我的图形窗口 numbertitle off menubar none windowbuttonmotionfcn plot x y axis 0 2 pi 1 1 实验内容 1 建立一个图形窗口 使之背景颜色为红色 并在窗口上保留原有的菜单项 而在按下鼠标左键之后显示出LeftButtonPressed字样 程序 clc clear closeall figure color 100 windowbuttondownfcn axisoff text 2 5 LeftButtonPressed fontsize 30 对于上述习题 改变文字颜色 clc clear closeall figure color 100 windowbuttondownfcn axisoff text 2 5 LeftButtonPressed fontsize 30 color b 6 2 2坐标轴对象坐标轴对象是图形窗口的子对象 每个图形窗口中可以定义多个坐标轴对象 但只有一个坐标轴是当前坐标轴 在没有指明坐标轴时 所有的图形图像都是在当前坐标轴中输出 必须明确一个概念 所谓在某个图形窗口中输出图形图像 实质上指在该图形窗口的当前坐标轴中输出图形图像 建立坐标轴对象使用axes函数 其调用格式为 句柄变量 axes 属性名1 属性值1 属性名2 属性值2 调用axes函数用指定的属性在当前图形窗口创建坐标轴 并将其句柄赋给左边的句柄变量 也可以使用axes函数按MATLAB缺省的属性值在当前图形窗口创建坐标轴 axes或句柄变量 axes 用axes函数建立坐标轴之后 还可以调用axes函数将之设定为当前坐标轴 且坐标轴所在的图形窗口自动成为当前图形窗口 axes 坐标轴句柄 MATLAB为每个坐标轴对象提供了很多属性 除公共属性外 其他常用属性如下 Box属性 GridLineStyle属性 Position属性 Units属性 Title属性等 Box属性 该属性的取值为on或off 缺省值 决定坐标轴是否带有边框 如 clc clear closeall figurepauseaxespauseset gca box on pauseset gca box off GridLineStyle属性 该属性的取值可以是 缺省值 或 none 定义网格线的类型 如 clc clear closeall figurepauseaxespausegridonpauseset gca gridlinestyle pauseset gca gridlinestyle pauseset gca gridlinestyle pauseset gca gridlinestyle none pauseset gca gridlinestyle Position属性 该属性的取值是一个由4个元素构成的向量 其形式为 n1 n2 n3 n4 这个向量决定坐标轴矩形区域在图形窗口中的位置 矩形的左下角相对于图形窗口左下角的坐标为 n1 n2 矩形的宽和高分别为n3和n4 它们的单位由Units属性决定 clc clear closeall figureaxesget gca position Units属性 该属性的取值有normalized 相对单位 为缺省值 inches 英寸 centimetres 厘米 和points 磅 Units属性定义Position属性的度量单位 clc clear closeall figureaxesset gca units get gca units Title属性 该属性的取值是坐标轴标题文字对象的句柄 可以通过该属性对坐标轴标题文字对象进行操作 如 改变标题颜色 可执行命令 clc clear closeall figureaxesh get gca title set h color r title Mypictures XLabel YLabel ZLabel属性 3种属性的取值分别为x y z轴说明文字的句柄 其操作与Title属性相同 如 设置x轴文字说明的命令 clc clear closeall figureaxesh get gca xlabel set h string Valuesofxaxis color r XLim YLim ZLim属性 3种属性的取值分别都是具有两个元素的数值向量 分别定义各坐标轴的上下限 缺省值为 0 1 以前介绍的axis函数实际上是对这些属性的直接赋值 clc clear closeall figureaxespauseset gca xlim 02 ylim 16 XScale YScale ZScale属性 3种属性的取值分别都是 linear 缺省值 或log 定义各坐标轴的刻度类型 View属性 该属性的取值是两个元素的数值向量 定义视点方向 例4利用坐标轴对象实现图形窗口的任意分割 利用axes函数可以在不影响图形窗口上其他坐标轴的前提下建立一个新的坐标轴 从而实现图形窗口的任意分割 clc clear clf x linspace 0 2 pi 20 y sin x axes position 0 2 0 2 0 2 0 7 gridlinestyle plot y x gridonaxes position 0 4 0 2 0 5 0 5 t 0 pi 100 20 pi 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 6 3低层绘图操作6 3 1曲线对象曲线对象是坐标轴的子对象 它既可以定义在二维坐标系中 也可以定义在三维坐标系中 建立曲线对象使用line函数 其调用格式为 句柄变量 line x y z 属性名1 属性值1 其中对x y z的解释与高层曲线函数plot和plot3等一样 其余的解释与前面介绍过的figure和axes函数类似 每个曲线对象也具有很多属性 除公共属性外 其他常用属性如下 Color属性 LineStyle属性 LineWidth属性 Marker属性 MarkerSize属性等 Color属性 该属性的取值是代表某颜色的字符或RGB值 LineStyle属性 定义线型 LineWidth属性 定义线宽 缺省值为0 5磅 Marker属性 定义数据点标记符号 缺省值为none MarkerSize属性 定义数据点标记符号的大小 缺省值为6磅 XData YData ZData属性 取值为数值向量或矩阵 分别代表曲线对象的3个坐标轴数据 例5利用曲线对象绘制曲线 clc clear closeall 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 hl1 line xdata t ydata y1 linewidth 5 hl2 line t y2 gridon 6 3 2曲面对象曲面对象也是坐标轴的子对象 它定义在三维坐标系中 而坐标系可以在任何视点下 建立曲面对象使用surface函数 其调用格式为 句柄变量 surface x y z 属性名1 属性值1 其中对x y z的解释与高层曲面函数mesh和surf等一样 其余的解释与前面介绍过的figure和axes等函数类似 每个曲面对象也具有很多属性 除公共属性外 其他常用属性如下 EdgeColor属性 FaceColor属性 LineStyle属性 LineWidth属性 Marker属性 MarkerSize属性等 EdgeColor属性 取值是代表某颜色的字符或RGB值 还可以是flat interp或none 缺省值为黑色 定义曲面网格线的颜色或着色方式 如 clc clear closeall x y z peaks 30 axes xlim 33 ylim 33 view 37 530 h surface x y z pauseset h edgecolor r pauseset h edgecolor 001 pauseset h edgecolor flat pauseset h edgecolor interp pauseset h edgecolor none pauseset h edgecolor k FaceColor属性 取值与EdgeColor属性相似 缺省值为flat 定义曲面网格片的颜色或着色方式 如 clc clear closeall x y z peaks 30 axes xlim 33 ylim 33 view 37 530 h surface x y z pauseset h facecolor r pauseset h facecolor 001 pauseset h facecolor flat pauseset h facecolor interp pauseset h facecolor none pauseset h facecolor k LineStyle属性 定义曲面网格线的类型 如 clc clear closeall x y z peaks 30 axes xlim 33 ylim 33 view 37 530 h surface x y z pauseset h linestyle pauseset h linestyle pauseset h linestyle pauseset h linestyle LineWidth属性 定义网格线的线宽 缺省值为0 5磅 如 clc clear closeall x y z peaks 30 axes xlim 33 ylim 33 view 37 530 h surface x y z pauseset h linewidth 7 pauseset h linewidth 3 pauseset h linewidth 5 pauseset h linewidth 5 Marker属性 定义曲面数据点标记符号 缺省值为none 如 clc clear closeall x y z peaks 30 axes xlim 33 ylim 33 view 37 530 h surface x y z pauseset h marker p pauseset h marker pauseset h marker s pauseset h marker none MarkerSize属性 定义曲面数据点标记符号的大小 缺省值为6磅 如 clc clear closeall x y z peaks 20 axes xlim 33 ylim 33 view 37 530 h surface x y z p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年考研销售试题题库及答案
- 2025年技能考试美术题库及答案
- 2025年农业项目投资试卷及答案
- 城市更新背景下历史文化街区改造策略
- 2025年太原事业单位真题
- 2025年腾冲市法院系统招聘真题
- 2025年怀化市靖州苗族侗族自治县中考一模数学试题含解析
- 2025年固体机械考试题目及答案
- 荆门视频会议施工方案
- 2025年度全国专业技术人员计算机应用能力考试模拟试题附答案解析
- 2025年上海市职业院校技能大赛思想政治教育课程教学能力比赛方案、教学能力比赛方案
- 医疗中心北欧设计理念与实践
- 无人机课程培训大纲
- GB/T 45355-2025无压埋地排污、排水用聚乙烯(PE)管道系统
- 2025年全国硕士研究生入学统一考试 (数学二) 真题及解析
- 计算机保密安全教育
- 三字经全文带拼音(打印版)
- 艾滋病梅毒乙肝课件
- 中小学教师职称评审讲课答辩英语学科全英答辩题目汇编(带汉语翻译)
- 2025年化工分析工(高级)考试题库(含答案)
- 汽车4S店客户投诉培训
评论
0/150
提交评论