图形对象和句柄课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《图形对象和句柄课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图形 对象 句柄 课件
- 资源描述:
-
1、技术凝聚实力技术凝聚实力专业创新出版专业创新出版第14章 图形对象和句柄l本书在第12章向读者详细介绍了MATLAB的数据可视化功能,即如何通过运用MATLAB的绘图函数和图形绘制窗口绘制用户需要的二维、三维等图形,相信读者通过学习,已经应该对于“高级”绘图的运用有了一定程度的了解。正如笔者提到的一样,MATLAB 7.0中的“高级”绘图指令往往不能使用户对于图形绘制了解得很透彻,如果用户需要通过了解“低层”绘图指令和图形对象属性开发函数,来对高级绘图指令的形成原理进行深入理解,并绘制出更加个性化的图形,那么读者应该仔细阅读本章。l本章首先简要介绍了MATLAB图形对象的相关概念、体系结构等;
2、MATLAB中需要通过句柄访问和控制图形对象,因此第14.2节讨论对象句柄的概念及其访问;第14.3节介绍了MATLAB中对象属性的查询、设置;第14.4-14.5节分别讨论了两类重要的MATLAB图形对象,即窗口对象和轴对象;第14.6节介绍了图形输出控制相关的属性设置;第14.7节介绍M文件内句柄的存储及MATLAB内建函数对句柄的操作,最后第14.8节对本章进行了小结。第1页,共29页。技术凝聚实力技术凝聚实力专业创新出版专业创新出版14.1 图形对象概述l图形对象(Graphics Object)是MATLAB 7.0提供给用户的一种用于创建计算机图形的面向对象的图形系统,该系统提供给
3、用户创建线、字、网格、面及图形用户界面(GUI,有关内容详见本书第17章)的多种3绘图指令。第12章所介绍的各种“高级”指令都是以图形对象为基础生成的,所以图形对象也称为低层图形。低层指令的调用,没有高层指令那样简明清晰、通俗易懂,但是低层指令可以直接对图形的基本要素进行操作的特点决定了使用者可以让绘制的图形更加个性化,更加具有表现力。第2页,共29页。技术凝聚实力技术凝聚实力专业创新出版专业创新出版14.1.1 图形对象的体系结构l图形对象是MATLAB中用来显示数据和创建GUI的基本绘图元素,对象的每个实例(instance)都对应唯一的标识符(Identifier),此标识符称为对象的句
4、柄(handle),句柄由系统设定,用户不能改变。用户可以利用句柄轻松地操作现有图形的各项特征,即设置对象属性。lMATLAB的图形对象体系结构中包含各种具有继承关系的对象,其关系有“父子”(从属)关系和“兄弟”(平行)关系两种,具体如图14.1所示。第3页,共29页。技术凝聚实力技术凝聚实力专业创新出版专业创新出版14.1.2 图形对象的类型l本小节主要是在14.1.1节的基础上向用户详细介绍各种类型的图形对象。l(1)根对象。l(2)图形窗口对象(Figure)。l(3)用户界面对象(UI objects)。用户界面对象是图形窗口对象的一个子对象,其用来创建用户界面的若干相关图形。l(4)
5、轴对象(Axes)。轴对象和用户界面对象是平行的兄弟关系。第4页,共29页。技术凝聚实力技术凝聚实力专业创新出版专业创新出版14.1.3 MATLAB中对象的属性lMATLAB中各级对象的属性控制其各种外观和显示特性。对象的属性包括公共属性(如对象类型、父、子对象、是否可见等)和不同类型对象的特有属性。例如,通过任何给定的图形对象,用户可以获取窗口中的最后击键、鼠标指针位置,或是最后选中的菜单句柄。第5页,共29页。技术凝聚实力技术凝聚实力专业创新出版专业创新出版14.2 访问对象句柄lMATLAB中创建的任何对象都由系统赋予一个句柄,所有构造函数的返回值即为其所创建对象的句柄。l14.1.3
6、节已经向读者介绍了对于对象属性的查询和设置,读者已了解到,如果需要做到对于对象属性的操作(查询或设置),则必须在对象创建之初就将其句柄保存在变量中,作为准备;如果用户觉得这样比较烦琐,或者偶尔忘记了保存,则还可以调用findobj函数或罗列其父对象的Children属性来获取现有对象的句柄。l读者应该很清楚,根对象的句柄为0,而其子对象,图形窗口对象的句柄一般有两种情况:l整数:默认显示在窗口标题栏中;l浮点数:具有完全的MATLAB内部精度。第6页,共29页。技术凝聚实力技术凝聚实力专业创新出版专业创新出版14.2.1 获取当前对象的句柄lMATLAB中,有关句柄图形的一个极为重要的概念是当
7、前性(Be Current)。例如,当前的窗口即为接受绘制函数输出的窗口;当前的坐标轴就是创建坐标轴子对象的命令输出目标坐标轴;而当前的图形对象则为最后创建的图形对象,或被用户用鼠标点击选中的图形对象。l用户可以直接把调用绘图函数的返回值存放在一个变量中,那么这个变量就是相应图形的句柄。l另外一种获取当前对象句柄的常用方法是调用get函数,get函数的调用格式和功能系统地阐述如下。第7页,共29页。技术凝聚实力技术凝聚实力专业创新出版专业创新出版14.2.2 调用findobj函数通过属性值查询对象lMATLAB提供给用户findobj函数,用于通过对属性值的搜索来查询对象句柄。findobj
8、函数可以快速形成一个结构层次的截面并获得具有指定属性值的对象句柄,如果用户没有指定起始对象,那么系统默认findobj函数从Root对象开始,搜索与用户指定属性名和属性值相符的所有对象。l用户希望将字符串sin(t)=.707从当前位置点pi/4,sin(pi/4)移动到点3*pi/4,sin(3*pi/4),这两个位置点的函数值相同。为了实现移动操作,用户首先要获得字对象的句柄,然后通过使用这个获得的句柄修改字对象的属性Position。第8页,共29页。技术凝聚实力技术凝聚实力专业创新出版专业创新出版14.2.3 使用句柄操作对象l本节主要讲解如何利用句柄,完成对于对象的复制和删除操作。l
9、(1)调用copyobj函数复制对象。l用户利用MATLAB中的copyobj函数,可以将对象a1从其父对象中复制到另一个对象中,生成新的对象a2,则a1和a2的区别有2点:l父对象不同;l对象句柄不同。l(2)调用delete函数删除对象。MATLAB中,用户可以使用delete函数,删除一个对象,其参数是此对象的句柄。例如,用户可以需要删除当前的坐标轴,代码如下:ldelete(gca)第9页,共29页。技术凝聚实力技术凝聚实力专业创新出版专业创新出版14.3 设置和访问MATLAB对象属性lMATLAB提供了set和get两个函数,分别可以使用户设置和返回现有图形对象的属性值。利用这两个
10、函数,还可以列出具体固定设置的属性的所有值。两个函数的基本调用格式如下:lset(object_handle,PropertyName,NewPropertyValue);lreturned_value=get(object_handle,PropertyName)。l以上两函数调用格式中,object_handle代表对象句柄,PropertyName代表属性名称,NewPropertyValue代表用户设置的属性值。l注意:函数调用格式中的属性名称为引用的字符串,而属性值则根据与不同的属性而变换类型。第10页,共29页。技术凝聚实力技术凝聚实力专业创新出版专业创新出版14.3.1 设置属性
11、值l调用set函数,并利用对象的返回句柄,用户可以设置现有对象的属性,例如,下面的代码将y轴移动到图形的当前坐标系的左边。lset(gca,YAxisLocation,left)l如果句柄参数是一个矢量,则MATLAB将所有标识的对象均进行属性的设置。用户还可以运用构架和元胞数组设置属性名称和属性值,这在设置多个对象的相同属性时非常奏效。lview1.CameraViewAngleMode=manual;lview1.DataAspectRatio=1 1 1;lview1.ProjectionType=Perspective;第11页,共29页。技术凝聚实力技术凝聚实力专业创新出版专业创新出
展开阅读全文