版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第8章 图形句柄 Eg: x=0:0.1:2; y=x.2; Hndl=plot(x,y); result=get(Hndl) set(Hndl,Linewidth,4,LineStyle,- -) x=linspace(0,2*pi); H=plot3(sin(x),cos(x),x); get(H) set(H,Marker,*) 8.1 图形对象及其句柄 MATLAB的图形系统是面向对象的。 什么是对象?拿人比喻: 人是一个对象。 手是一个对象。 脚是一个对象。 头是一个对象。 肝是一个对象。 。 人这个对象是有手、脚、头、肝、肺等对象组成。 现代编程语言就是基于这种思想,matlab底
2、层是通过函 数实现面向对象的编程。 对象的属性 什么是属性?拿人的手来比喻: 手的颜色:黄色、黑色、白色等。 手的长度:10cm、11.5cm等。 手有几个手指:3个、5个、6个等。 手的重量:100克、150克。 手在人体上位置:与小臂相连等。 对象的事件 人被骂了,会生气。 人饿了,要吃饭。 人被打了,要还手。 人被钉子刺了,会疼痛。 8.1 图形对象及其句柄 8.1.1 图形对象 MATLAB的图形对象包括图形窗口、坐标轴、用户界面、 曲线、曲面、文字、图像等。 在MATLAB中,每一个具体的图形都是由若干个不同的 图形对象组成的。 8.1 图形对象及其句柄 图形对象是有层次的,其层次结
3、构如图8.1所示。 图形窗口是根对象的子对象, 坐标轴和用户界面对象是图形窗口的子对象, 曲线、曲面、文字等是坐标轴的子对象。 图形窗口 坐标轴 隐藏的坐标轴 注解对象 组对象 绘图对象 核心对象 根 用户界面对象 注解对象 8.1.2 图形对象句柄 MATLAB在创建每一个图形对象时,都为该对象 分配唯一的一个值,称其为图形对象句柄 (Handle),它是图形对象的唯一标识符。 根对象的句柄值为0; 图形窗口对象的句柄值为一正整数,显示在该窗 口的标题栏; 其他图形对象的句柄为双精度浮点数。 图形对象的句柄由系统自动分配自动分配,每次分配的值不一 定相同。 通俗点说,句柄是什么:句柄就是ma
4、tlab 给每个对象取的名字。! Matlab中为什么需要对象的句柄? 在matlab中,要获取或者修改对象的属性, 必须先找到对象的句柄,再由此对象的句柄 找到这个对象,然后才可以获取或者修改对 象的属性。 句柄的概念是matlab图像编程的基础。 MATLAB提供了若干个函数用于获取已有图 形对象的句柄,较为常用的函数如表8.1所示。 表 8.1 常用的获取图形对象句柄的函数 函 数 功 能 gcf 获取当前图形窗口的句柄(get current figure) gca 获取当前坐标轴的句柄(get current axis) gco 获取最近被选中的图形对象的句柄(get current
5、 object) findobj 按照指定的属性来获取图形对象的句柄 【例8.1】绘制曲线并查看有关对象的句柄。 x=linspace(0,2*pi,30); y=sin(x); h0=plot(x,y,rx) %曲线对象的句柄 h1=gcf %图形窗口句柄 h2=gca %坐标轴句柄 h3=findobj(gca,Marker,x) %坐标轴上曲线 的句柄 8.1.3 图形对象属性 1属性名与属性值 MATLAB给每种对象的每一个属性规定了一个名字,称 为属性名,而属性名的取值称为属性值。 例如,LineStyle是曲线对象的一个属性名,它的值决定 着线型,取值可以是- 、:、-.、-或no
6、ne, 属性名要用单撇号括起来。 2属性的操作 (1)设置图形对象属性 set(句柄,属性名1,属性值1,属性名2,属性值2,) 其中“句柄”用于指明要操作的图形对象。 (2)获取图形对象属性 V=get(句柄,属性名) 其中V是返回的属性值。 例如,以下命令用来获得上述曲线的颜色属性值: h=figure(1) col=get(h,Color) set(h, Color,b); 3对象的公共属性 (1)Children属性。是该对象所有子对象的句柄组成 的一个向量。 (2)Color属性。取值是一个颜色值,既可以用字符表 示,也可以用RGB三元组表示。 (3)Parent属性。取值是该对象的
7、父对象的句柄。 (4)Tag属性。取值是一个字符串。Tag是你(用户) 给这个对象取的名字,可以有这个tag找到这个对象的 句柄。 例如,hf = findobj(0, Tag,Flag1)将在屏幕对象及其子 对象中寻找Tag属性为Flag1的对象,并返回句柄。 (5)string属性:显示在对象上的字符,比如按钮上的 “确定”字符或者“ok”字符,相当于控件穿什么样的 衣服。 (6)Visible属性。该属性的取值是on(默认值)或off, 决定着图形对象是否在图形窗口中显示出来。 【例8.2】在同一坐标下绘制红、绿两条不同的曲线, 然后获取绿色曲线的句柄,并利用句柄更改绿色曲 线的样式。
8、程序如下: x=0:pi/50:2*pi; y=sin(x); z=cos(x); plot(x,y,r,x,z,g); %绘制两根不同曲线 Hl=get(gca,Children) %获取两曲线句柄向量Hl for k=1:size(Hl) if get(Hl(k),Color)=0 1 0 %0 1 0代表绿色 Hlg=Hl(k); %获取绿色线条句柄 end end pause %便于观察设置前后的效果 set(Hlg,LineStyle,:,Marker,p); %对绿色线条进 行设置,线型为点线,数据点为五角星 8.2 图形窗口对象与坐标轴 除根对象外,所有图形对象都可以由与之同名的
9、低层函 数创建。 8.2.1 图形窗口对象 创建图形窗口对象: 句柄变量 = figure(属性名1,属性值1,属性名2,属性值 2,) figure(窗口句柄) 关闭图形窗口: close(窗口句柄) close all 关闭所有的图形窗口 Clf 清除当前图形窗口的内容,但不关闭窗口。 图形窗口常用属性 (1)Position属性。其形式为n1,n2,n3,n4。其中n1和 n2分别为对象左下角的横纵坐标值,n3和n4分别为图 形窗口的宽度和高度。它们的单位由Units属性决定。 (2)Units属性。该属性的取值: normalized(相对单 位,为默认值)、pixel(像素)、inc
10、hes(英寸)、 centimeters(厘米)和points(磅)。 (3)对键盘及鼠标响应属性。这类属性有 KeyPressFcn(键盘键按下响应)、 WindowButtonDownFcn(鼠标键按下响应)、 WindowButtonMotionFcn(鼠标移动响应)、 WindowButtonUpFcn(鼠标键释放响应)等。 【例8.3】建立一个图形窗口。该图形窗口没有菜单条, 标题名称为“我的图形窗口”,当用户从键盘按下任意 一个键时,将在该图形窗口绘制出正弦曲线。 命令如下: x=linspace(0,2*pi,60); y=sin(x); hf=figure(Position,5
11、,5,360,210,MenuBar,none, Name,我的图形窗口,NumberTitle,off, KeyPressFcn, plot(x,y);axis(0,2*pi,-1,1);); 8.2.2 坐标轴 坐标轴是在图形窗口中定义的一个画图区域。 建立坐标轴对象使用axes函数: 句柄变量=axes(属性名1,属性值1,属性名2,属性值 2,) axes 或 句柄变量=axes 激活坐标轴: axes(坐标轴句柄) 8.2 图形窗口对象与坐标轴 【例8.4】利用坐标轴对象实现图形窗口的任意分割。 clf; %清除图形窗口中的内容 x,y=meshgrid(0:0.1:pi/2,0:0
12、.1:pi); z=sin(x.2)+cos(y.2); axes(Position,0.05,0.6,0.3,0.3); plot(x,z); set(gca,XDir,reverse) axes(Position,0.45,0.6,0.5,0.35); plot3(x,y,z); set(gca,view,75,15,ZLim,-0.5,1.8) axes(Position,0.1,0.05,0.8,0.5); plot3(x,y,z); grid on; 8.3 核心图形对象 8.3.1 曲线对象 建立曲线对象使用line函数: 句柄变量=line(x,y,属性名1,属性值1,属性名2,
13、属性值2,) 句柄变量=line(x,y,z,属性名1,属性值1,属性名2,属性值2,) 曲线对象除Color等公共属性外,其他常用属性如下: (1)LineStyle属性。定义线型。 (2)LineWidth属性。定义线宽,默认值为0.5磅。 (3)Marker属性。定义数据点标记符号,默认值为none。 (4)MarkerSize属性。定义数据点标记符号的大小,默认 值为6磅。 【例8.5】利用曲线对象绘制曲线y=etsin2t。 程序如下: t=0:pi/100:pi; y=sin(2*pi*t).*exp(-t); figure(Position,30,100,480,320); ax
14、es(GridLineStyle,-.,XLim,0,pi,YLim,- 0.6,1); h=get(gca,Title); set(h,String,y= e-tsin(2pit) ); line(XData,t,YData,y,Marker,*); grid on 8.3.2 曲面对象 句柄变量=surface(x,y,z,属性名1,属性值1, 属性名2,属性值2,) x、y、z的含义和用法与高层曲面函数 mesh、surf等一样。 其余的选项与前面介绍过的figure、axes等 函数类似。 除公共属性外,其他常用属性如下。 (1)EdgeColor属性。定义曲面网格线的颜色或 着色方式
15、。 (2)FaceColor属性。定义曲面网格片的颜色或 着色方式。 (3)LineStyle属性。定义曲面网格线的线型。 (4)LineWidth属性。定义曲面网格线的线宽。 (5)Marker属性。定义曲面数据点标记符号。 (6)MarkerSize属性。定义曲面数据点标记符号 的大小。 (7)XData、YData、ZData属性。取值是数值 向量或矩阵,代表曲曲面对象的3个坐标轴数据。 【例8.6】利用曲面对象绘制三维曲面z = x2 2y2。 程序如下: clear;clc; x,y=meshgrid(-10:0.5:10); z=x.2-2.*y.2; hs=surface(x,y
16、,z,FaceColor,w,EdgeColor,flat); grid on; set(gca,view,-37.5,25); %设置视点 h=get(gca,Title); %设置标题 set(h,String,网格曲面,FontSize,8,Position,0.4,0.9); pause set(hs,FaceColor,flat); set(get(gca,Title),String,着色曲面); 特别重要的 1.句柄:matlab给对象取的名字 2.属性:大多数情况下指对象的外观特性。 3.Tag属性。取值是一个字符串。Tag是你(用户)给 这个对象取的名字,可以由这个tag找到这个对象的句 柄。 4.string属性:显示在对象上的字符,比如按钮上的 “确定”字符或者“ok”字符,相当于控件穿什么样的 衣服。 5.findobj函数找到对象的句柄 句柄=findobj (“属性名”,属性值,) 6.get函数获得对象的属性值 value
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026广东清远市迳头镇招聘专职网格员4人笔试备考试题及答案解析
- 2026中国科学报社诚聘图文和音视频记者2人笔试模拟试题及答案解析
- 2026重庆巫山县人力社保局公益性岗位招聘1人笔试参考题库及答案解析
- 2026吉林大学白求恩第一医院急诊内科招聘笔试备考题库及答案解析
- 2026上海市工商外国语学校招聘9人考试备考题库及答案解析
- 2026山东枣庄市财金控股集团有限公司招聘5人考试备考题库及答案解析
- 2026暨南大学网络空间安全学院招聘笔试参考题库及答案解析
- 下期湖南岳阳市城区2025-2026学年初三4月月考英语试题试卷含解析
- 九电能和电功同步测试题重点名校2025-2026学年初三第二学期期末语文试题模拟试题含解析
- 2026届山东省泰安市重点中学初三下期末语文试题试卷含解析
- 高血压糖尿病的护理问题和措施
- 施工项目管理制度
- 公路处安全培训课件
- BIM技术在城市绿化项目中的应用
- 隧道突水突泥风险评估与防控技术
- 建筑设计策略分享
- 做账实操-增值税强制申报情况说明书
- 证券投资理论与实务考点重点讲义
- 《苏幕遮(碧云天)》课件-【中职专用】高一语文同步课堂(高教版2023基础模块下册)
- 保安证考试的复习方法及技巧试题及答案
- 语文七年级下册 第二单元 单元整体分析
评论
0/150
提交评论