matlab图形句柄ppt课件

上传人:钟*** 文档编号:5844323 上传时间:2020-02-09 格式:PPT 页数:28 大小:379KB
返回 下载 相关 举报
matlab图形句柄ppt课件_第1页
第1页 / 共28页
matlab图形句柄ppt课件_第2页
第2页 / 共28页
matlab图形句柄ppt课件_第3页
第3页 / 共28页
点击查看更多>>
资源描述
第8章图形句柄 1 MATLAB的图形是由不同图形对象 如坐标轴 曲线 曲面或文字等 组成的 MATLAB系统给每个图形对象分配一个标识符 称为句柄 以后可以通过该句柄获取或设置该图形对象的属性 本章学习目标 了解图形对象和图形句柄的基本概念 掌握图形对象属性的基本操作 掌握利用图形对象进行绘图操作的方法 2 8 1图形对象及其句柄 MATLAB的图形系统是面向对象的 图形对象是MATLAB为了描述具有类似特征的图形元素而定义的具有一些公共属性的抽象的元素集合 是用于显示图形和制作用户界面的基本要素 8 1 1图形对象MATLAB的图形对象包括图形窗口 坐标轴 用户界面 曲线 曲面 文字 图像等 在MATLAB中 每一个具体的图形都是由若干个不同的图形对象组成的 图形对象是有层次的 其层次结构如图8 1所示 图形窗口是根对象的子对象 坐标轴和用户界面对象是图形窗口的子对象 曲线 曲面 文字等是坐标轴的子对象 3 8 1 2图形对象句柄MATLAB在创建每一个图形对象时 都为该对象分配唯一的一个值 称其为图形对象句柄 Handle 它是图形对象的唯一标识符 根对象的句柄值为0 图形窗口对象的句柄值为一正整数 显示在该窗口的标题栏 其他图形对象的句柄为双精度浮点数 MATLAB提供了若干个函数用于获取已有图形对象的句柄 较为常用的函数如表8 1所示 4 例8 1 绘制曲线并查看有关对象的句柄 命令如下 x linspace 0 2 pi 30 y sin x h0 plot x y rx 曲线对象的句柄h0 171 0016h1 gcf 图形窗口句柄h1 1h2 gca 坐标轴句柄h2 170 0017h3 findobj gca Marker x 坐标轴上曲线的句柄h3 171 0016图形对象的句柄由系统自动分配 每次分配的值不一定相同 在获取对象的句柄后 可以通过句柄来设置或获取对象的属性 5 8 1 3图形对象属性1 属性名与属性值为方便属性的操作 MATLAB给每种对象的每一个属性规定了一个名字 称为属性名 而属性名的取值称为属性值 例如 LineStyle是曲线对象的一个属性名 它的值决定着线型 取值可以是 或 none 在属性名的写法中 不区分字母的大小写 而且在不引起歧义的前提下 属性名不必写全 例如 lines就代表LineStyle 此外 属性名要用单撇号括起来 2 属性的操作 1 设置图形对象属性用户可以通过set函数重新设置图形对象属性 其调用格式为set 句柄 属性名1 属性值1 属性名2 属性值2 其中 句柄 用于指明要操作的图形对象 如果在调用set函数时省略全部属性名和属性值 则将显示出句柄所有的允许属性 2 获取图形对象属性用户可通过get函数获取图形对象的属性值 其调用格式为V get 句柄 属性名 其中V是返回的属性值 如果在调用get函数时省略属性名 则将返回句柄所有的属性值 例如 以下命令用来获得上述曲线的颜色属性值 col get h Color 6 3 对象的公共属性图形对象具有各种各样的属性 有些属性是所有对象共同具备的 有些属性则是各对象所特有的 这里先介绍对象常用的公共属性 1 Children属性 该属性的取值是该对象所有子对象的句柄组成的一个向量 2 Color属性 该属性的取值是一个颜色值 既可以用字符表示 也可以用RGB三元组表示 3 Parent属性 该属性的取值是该对象的父对象的句柄 4 Tag属性 该属性的取值是一个字符串 它相当于给该对象定义了一个标签 定义了Tag属性后 在任何程序中都可以通过findobj函数获取该标签所对应图形对象的句柄 例如 hf findobj 0 Tag Flag1 将在屏幕对象及其子对象中寻找Tag属性为Flag1的对象 并返回句柄 5 Type属性 表示该对象的类型 该属性的值是只读的 6 UserData属性 该属性的取值是一个矩阵 默认值为空矩阵 在程序设计中 可以将一个与图形对象有关的比较重要的数据存储在这个属性中 借此可以达到传递数据的目的 具体做法是 先用set函数给某一句柄添加一些附加数据 一个矩阵 如果想使用这样的矩阵 再用get函数调用出来 7 Visible属性 该属性的取值是on 默认值 或off 决定着图形对象是否在图形窗口中显示出来 7 例8 2 在同一坐标下绘制红 绿两条不同的曲线 然后获取绿色曲线的句柄 并利用句柄更改绿色曲线的样式 程序如下 x 0 pi 50 2 pi y sin x z cos x plot x y r x z g 绘制两根不同曲线Hl get gca Children 获取两曲线句柄向量Hlfork 1 size Hl ifget Hl k Color 010 010 代表绿色Hlg Hl k 获取绿色线条句柄endendpause 便于观察设置前后的效果set Hlg LineStyle Marker p 对绿色线条进行设置 8 8 2图形窗口对象与坐标轴 除根对象外 所有图形对象都可以由与之同名的低层函数创建 8 2 1图形窗口对象创建图形窗口对象使用figure函数 其调用格式如下 句柄变量 figure 属性名1 属性值1 属性名2 属性值2 figure 窗口句柄 使用第1种格式时 按指定的属性来创建图形窗口 使用第2种格式时 若句柄是已经存在的某图形窗口句柄 则使该图形窗口成为当前图形窗口 并在此输出 若句柄是不存在的图形窗口句柄 则使用该句柄创建一个新的图形窗口后 在新的图形窗口输出 figure函数不带参数时 按MATLAB默认的属性值创建图形窗口 要关闭图形窗口 使用close函数 其调用格式为close 窗口句柄 另外 closeall命令可以关闭所有的图形窗口 clf命令则是清除当前图形窗口的内容 但不关闭窗口 9 图形窗口常用属性 1 MenuBar ToolBar属性 属性的取值可以是figure 默认值 或none 用来控制图形窗口是否具有菜单条 工具栏 2 NumberTitle属性 该属性的取值是on 默认值 或off 决定在图形窗口的标题中是否以 FigureNo n 为标题前缀 这里n是图形窗口的序号 即句柄值 3 Resize属性 该属性的取值是on 默认值 或off 决定着在图形窗口建立后可否用鼠标改变该窗口的大小 4 Pointer属性 该属性的可取值是arrow 默认值 crosshair ibeam watch topl topr botl botr circle cross fleur custom等 分别对应于15种典型的鼠标指针形式 5 Position属性 该属性的取值是一个由4个元素构成的向量 其形式为 n1 n2 n3 n4 这个向量定义了图形窗口在屏幕上的位置和大小 其中n1和n2分别为对象左下角的横纵坐标值 n3和n4分别为图形窗口的宽度和高度 它们的单位由Units属性决定 6 Units属性 该属性的取值可以是下列字符串中的任何一种 normalized 相对单位 为默认值 pixel 像素 inches 英寸 centimeters 厘米 和points 磅 7 对键盘及鼠标响应属性 MATLAB允许对键盘和鼠标键按下这样的动作进行响应 这类属性有KeyPressFcn 键盘键按下响应 WindowButtonDownFcn 鼠标键按下响应 WindowButtonMotionFcn 鼠标移动响应 WindowButtonUpFcn 鼠标键释放响应 等 这些属性所对应的属性值可以为用MATLAB编写的函数名或命令名 表示一旦键盘键或鼠标键按下之后 将自动调用给出的函数或命令 10 例8 3 建立一个图形窗口 该图形窗口没有菜单条 标题名称为 我的图形窗口 该窗口位于屏幕的左下角 其宽度和高度分别为450像素和250像素 且当用户从键盘按下任意一个键时 将在该图形窗口绘制出正弦曲线 命令如下 x linspace 0 2 pi 60 y sin x hf figure Position 5 5 360 210 MenuBar none Name 我的图形窗口 NumberTitle off KeyPressFcn plot x y axis 0 2 pi 1 1 11 8 2 2坐标轴坐标轴是在图形窗口中定义的一个画图区域 坐标轴对象是图形窗口的子对象 在某个图形窗口中输出图形图像 实质上是指在该图形窗口的当前坐标轴中输出图形图像 建立坐标轴对象使用axes函数 其调用格式如下 句柄变量 axes 属性名1 属性值1 属性名2 属性值2 axes或句柄变量 axes调用axes函数用指定的属性在当前图形窗口创建坐标轴 并将其句柄赋给左边的句柄变量 函数不带参数表示按MATLAB默认的属性值在当前图形窗口创建坐标轴 用axes函数建立坐标轴之后 还可以调用axes函数将其设定为当前坐标轴 且坐标轴所在的图形窗口自动成为当前图形窗口 调用格式为axes 坐标轴句柄 12 MATLAB常用属性 1 Box属性 该属性的取值是on或off 默认值 它决定坐标轴是否带有边框 2 GridLineStyle属性 该属性的取值可以是 默认值 或 none 该属性定义网格线的类型 3 Title属性 该属性的取值是坐标轴标题文字对象的句柄 可以通过该属性对坐标轴标题文字对象进行操作 例如 要改变坐标轴标题的颜色 可执行命令 h get gca Title 获得坐标轴的标题文字对象句柄set h Color r 设置标题为红色 5 View属性 该属性的取值是2个元素的数值向量 定义视点 6 Position属性和Units属性 定义坐标轴左下角在图形窗口上的位置 以图形窗口左下角为原点 13 4 坐标轴刻度属性 这类属性包括以下内容 XLabel YLabel ZLabel属性 这3种属性的取值分别是x y z轴说明文字的句柄 其操作与Title属性相同 例如 要设置x轴文字说明 可使用命令 h get gca XLabel 获得x轴文字对象句柄set h String ValuesofXaxis 设置x轴文字说明 XLim YLim ZLim属性 这3种属性的取值都是具有2个元素的数值向量 分别定义各坐标轴的下限和上限 默认值为 0 1 以前介绍的axis函数实际上是对这些属性的直接赋值 XScale YScale ZScale属性 这3种属性的取值都是 linear 默认值 或 log 这些属性定义各坐标轴的刻度类型 XTickLabel YTickLabel ZTickLabel属性 这3种属性的取值都是字符串矩阵 分别用字符串替换x y z轴默认的数字型刻度线标签 例如 将坐标轴的x轴刻度线标签改为一些字母 可执行以下命令 set gca XTickLabel A B C D E F Xdir Ydir Zdir属性 这3种属性的取值都是 normal 默认值 或 reverse 分别定义x y z轴的方向 7 字体属性 MATLAB允许对坐标轴标注的字体进行设置 这类属性有FontName 字体名称 FontWeight 字形 FontSize 字体大小 FontUnits 字体大小单位 FontAngle 字体角度 等 FontName属性的取值是系统支持的一种字体名或 FixedWidth FontSize属性的单位由FontUnits属性决定 FontWeight属性的取值可以是 normal 默认值 bold light 或 demi FontAngle的取值可以是 normal 默认值 italic 或 oblique 14 例8 4 利用坐标轴对象实现图形窗口的任意分割 clf 清除图形窗口中的内容 x y meshgrid 0 0 1 pi 2 0 0 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 gridon 15 8 3核心图形对象 8 3 1曲线对象曲线对象是坐标轴的子对象 它既可以定义在二维坐标系中 也可以定义在三维坐标系中 建立曲线对象使用line函数 其调用格式如下 句柄变量 line x y 属性名1 属性值1 属性名2 属性值2 句柄变量 line x y z 属性名1 属性值1 属性名2 属性值2 其中 对x y z的含义和用法与高层曲线函数plot plot3等一样 其余的选项与前面介绍过的figure和axes函数类似 每个曲线对象也具有很多属性 除Color Parent等公共属性外 其他常用属性如下 1 LineStyle属性 定义线型 2 LineWidth属性 定义线宽 默认值为0 5磅 3 Marker属性 定义数据点标记符号 默认值为none 4 MarkerSize属性 定义数据点标记符号的大小 默认值为6磅 5 XData YData ZData属性 这3种属性的取值都是数值向量或矩阵 分别代表曲线对象的3个坐标轴数据 16 例8 5 利用曲线对象绘制曲线y e tsin2 t 程序如下 t 0 pi 100 pi y sin 2 pi t exp t figure Position 30 100 480 320 axes GridLineStyle XLim 0 pi YLim 0 6 1 h get gca Title set h String y e t sin 2 pi t line XData t YData y Marker gridon 17 8 3 2曲面对象曲面对象也是坐标轴的子对象 建立曲面对象使用surface函数 其调用格式为句柄变量 surface x y z 属性名1 属性值1 属性名2 属性值2 其中 对x y z的含义和用法与高层曲面函数mesh surf等一样 其余的选项与前面介绍过的figure axes等函数类似 每个曲面对象也具有很多属性 除公共属性外 其他常用属性如下 1 EdgeColor属性 定义曲面网格线的颜色或着色方式 取值是代表某颜色的字符或RGB值 还可以是flat interp或none 默认为黑色 2 FaceColor属性 定义曲面网格片的颜色或着色方式 取值是代表某颜色的字符或RGB值 还可以是flat 默认值 interp或none 3 LineStyle属性 定义曲面网格线的线型 4 LineWidth属性 定义曲面网格线的线宽 默认值为0 5磅 5 Marker属性 定义曲面数据点标记符号 默认值为none 6 MarkerSize属性 定义曲面数据点标记符号的大小 默认值为6磅 7 XData YData ZData属性 这3种属性的取值都是数值向量或矩阵 分别代表曲曲面对象的3个坐标轴数据 18 例8 6 利用曲面对象绘制三维曲面z x2 2y2 程序如下 x y meshgrid 10 0 5 10 z x 2 2 y 2 hs surface x y z FaceColor w EdgeColor flat gridon set gca view 37 5 25 设置视点 设置标题h get gca Title set h String 网格曲面 FontSize 8 Position 0 4 0 9 pauseset hs FaceColor flat set get gca Title String 着色曲面 19 8 3 3文本对象文本对象主要用于给图形添加文字标注 在文本对象中除使用一般的文字以外 还允许使用LaTeX文本 使用text函数可以根据指定位置和属性值添加文字说明 并保存句柄 该函数的调用格式为句柄变量 text x y z 说明文字 属性名1 属性值1 属性名2 属性值2 其中 x y z为双精度型 定义文本对象在坐标轴上的位置 长度单位与当前图形的长度单位相同 说明文字中除使用标准的ASCII字符外 还可使用LaTeX格式的控制字符 例如 h text 0 5 0 5 gamma rho 2 将得到标注效果 2 20 文本对象的其他常用属性如下 1 String属性 该属性的取值是字符串或字符串矩阵 它记录着文字标注的内容 2 Interpreter属性 该属性的取值是latex 默认值 tex或none 该属性控制对文字标注内容的解释方式 即LaTeX方式 TeX方式或ASCII方式 3 字体属性 这类属性有FontName 字体名称 FontWeight 字形 FontSize 字体大小 FontUnits 字体大小单位 FontAngle 字体角度 等 FontName属性的取值是系统支持的一种字体名或 FixedWidth FontSize属性定义文本对象的大小 其单位由FontUnits属性决定 默认值为10磅 FontWeight属性的取值可以是 normal 默认值 bold light 或 demi FontAngle的取值可以是 normal 默认值 italic 或 oblique 4 Rotation属性 该属性的取值是数值量 默认值为0 它定义文本对象的旋转角度 取正值时表示逆时针方向旋转 取负值时表示顺时针方向旋转 5 BackgroundColr和EdgeColor属性 设置文本对象的背景颜色和边框线的颜色 可取值为none 默认值 或ColorSpec 6 HorizontalAlignment属性 该属性控制文本与指定点的相对位置 其取值为left 默认值 center或right 21 例8 7 利用曲线对象绘制曲线并利用文本对象完成标注 程序如下 x pi 1 pi y1 sin x y2 cos x h line x y1 LineStyle line x y2 LineStyle Color b xlabel pi leq Theta leq pi ylabel sin Theta title Plotofsin Theta text pi 4 sin pi 4 leftarrowsin pi div4 FontSize 12 set h Color r LineWidth 2 改变曲线1的颜色和线宽 22 8 3 4其他核心对象1 补片对象补片对象是由一个或多个多边形构成的 补片对象特别适合为现实世界中的事物建立模型 补片对象可以用fill fill3 contours和patch函数创建 在MATLAB中 创建补片对象的低层函数是patch函数 通过定义多边形的顶点和多边形的填充颜色来实现 patch函数的调用格式为 patch x y color patch x y z color patch 属性名1 属性值1 属性名2 属性值2 在前两种格式中 x y z是向量或矩阵 定义多边形顶点 若x y z为m n大小的矩阵 则每一行的元素构成一个多边形 color指定填充颜色 若f为标量 补片对象用单色填充 若f为向量 补片对象用不同颜色填充各多边形 每个多边形用不同颜色 则可以产生立体效果 第3种格式以指定属性的方式创建补片对象 23 补片对象的其他常用属性 1 Vertices和Faces属性 其取值都是一个m n大小的矩阵 Vertices属性定义各个顶点 每行是一个顶点的坐标 Faces属性定义图形由m个多边形构成 每个多边形有n个顶点 其每行的元素是顶点的序号 对应Vertices矩阵的行号 2 FaceVertexCData属性 当使用Faces和Vertices属性创建补片对象时 该属性用于指定补片颜色 3 FaceColor属性 设置补片对象的填充样式 可取值为RGB三元组 none flat 和 interp 线性渐变 4 XData YData和ZData属性 其取值都是向量或矩阵 分别定义各顶点的x y z坐标 若它们为矩阵 则每一列代表一个多边形 24 例8 8 用patch函数绘制一个长方体 长方体由6个面构成 每面有4个顶点 可以把一个面当成一个多边形处理 程序如下 clf k 2 k为长宽比 X Y Z的每行分别表示各面的四个点的x y z坐标X 0110 1111 1001 0000 1001 0110 Y k 0000 0110 1111 1001 0011 0011 Z 0011 0011 0011 0011 0000 1111 生成和X同大小的颜色矩阵tcolor rand size X 1 size X 2 patch X Y Z tcolor FaceColor interp view 37 5 35 axisequaloff 25 2 矩形对象在MATLAB中 矩形 椭圆以及二者之间的过渡图形 如圆角矩形都称为矩形对象 创建矩形对象的低层函数是rectangle 该函数调用格式为rectangle 属性名1 属性值1 属性名2 属性值2 除公共属性外 矩形对象的其他常用属性如下 1 Position属性 与坐标轴的Position属性基本相同 相对坐标轴原点定义矩形的位置 2 Curvature属性 定义矩形边的曲率 3 LineStyle属性 定义线型 4 LineWidth属性 定义线宽 默认值为0 5磅 5 EdgeColor属性 定义边框线的颜色 26 3 发光对象发光对象定义光源 这些光源会影响坐标轴中所有patch对象和surface对象的显示效果 MATLAB提供light函数创建发光对象 其调用格式为light 属性名1 属性值1 属性名2 属性值2 发光对象有如下3个重要属性 1 Color属性 设置光的颜色 2 Style属性 设置发光对象是否在无穷远 可取值为infinite 默认值 或local 3 Position属性 该属性的取值是数值向量 用于设置发光对象与坐标轴原点的距离 发光对象的位置与Style属性有关 若Style属性为local 则设置的是光源的实际位置 若Style属性为infinite 则设置的是光线射过来的方向 27 例8 10 光照处理后的球体 程序如下 X Y Z sphere 30 surface X Y Z FaceColor flat EdgeColor none shadinginterp view 37 5 30 lightinggouraudaxissquarerotate3Donlight Position 1 12 Style infinite color yellow 28
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!