第9章 句柄图形_第1页
第9章 句柄图形_第2页
第9章 句柄图形_第3页
第9章 句柄图形_第4页
第9章 句柄图形_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第9章章 句柄图形句柄图形MATLAB的图形对象通过句柄来进行控的图形对象通过句柄来进行控制,可通过使用句柄来对对象进行操作。制,可通过使用句柄来对对象进行操作。l 句柄图形体系句柄图形体系l 图形对象创建图形对象创建l 图形对象设置图形对象设置l 坐标轴对象坐标轴对象9.1 句柄图形体系1、图形对象、图形对象句柄:对象的标识句柄:对象的标识对于图形,实质是窗口,窗口的所有对象均可以通过句柄对于图形,实质是窗口,窗口的所有对象均可以通过句柄进行访问。进行访问。9.1 句柄图形体系1、图形对象、图形对象9.1 句柄图形体系1、图形对象、图形对象9.1 句柄图形体系2、句柄对象、句柄对象句柄:句

2、柄:Matlab中用一个数字来标识对象,即句柄是数字中用一个数字来标识对象,即句柄是数字l 计算机屏幕:通常为零计算机屏幕:通常为零l 图形窗口:整数图形窗口:整数l 其它:浮点数其它:浮点数 HF=figureHF = 1 H1=surf(peaks)H1 = 160.0062在创建(绘制)生成图形窗口时,会自动生成句柄,如:在创建(绘制)生成图形窗口时,会自动生成句柄,如:9.1 句柄图形体系2、句柄对象、句柄对象句柄的命名最好能遵循命名规则,以便于句柄对象的句柄的命名最好能遵循命名规则,以便于句柄对象的辨识,如:辨识,如:Hf_fig1Hf_fig2Ha_ax1H1_peaksHt_ti

3、tle9.1 句柄图形体系3、对象属性、对象属性创建对象时,同时生成了一组属性,可以通过创建对象时,同时生成了一组属性,可以通过inspect函函数来进行查询。数来进行查询。Hf_fig1=figure(1)Ha_ax1=subplot(2,2,1)peaks(20)Ha_ax2=subplot(2,2,2)surf(peaks)Ha_ax3=subplot(2,2,3)IMG=imread(IMG_0051.jpg);image(IMG);Ha_ax4=subplot(2,2,4)fplot(sin,-2*pi,2*pi)inspect(Ha_ax1)inspect(Ha_ax2)inspe

4、ct(Ha_ax3)inspect(Ha_ax4)9.1 句柄图形体系3、对象属性、对象属性创建对象时,同时生成了一组属性,可以通过创建对象时,同时生成了一组属性,可以通过inspect函函数来进行查询。数来进行查询。t=linspace(1,10,100);y=sin(2*t);Hf_plot = plot(t,y,rs-)inspect(Hf_plot)9.2 图形对象创建1、创建图形对象、创建图形对象通过同名的图形对象命令来创建图形对象,并返回句通过同名的图形对象命令来创建图形对象,并返回句柄。柄。laxeslfigurelimagellightllinelpatchlrectangul

5、arlsurfaceltextluicontrolluimenu9.2 图形对象创建1、创建图形对象、创建图形对象% create_obj_handle.m% 创建图形对象句柄函数创建图形对象句柄函数x=-2*pi:0.5:2*pi;y=x;X,Y=meshgrid(x,y);Z=X.3/2-Y.3/2;% 创建坐标轴句柄对象创建坐标轴句柄对象Ha_axes=axes(color,0.8 0.8 0.8,xtick,-8:2:8,ytick,-8:2:8)% 绘制图形绘制图形Ha_surface=surface(xdata,X,ydata,Y,zdata,Z, Facecolor, get(H

6、a_axes,color)+0.1, edgecolor,k,marker,o,markersize,3)input(Any continue)view(3) 9.2 图形对象创建2、访问图形对象句柄、访问图形对象句柄a) 通过图形创建命令获得句柄通过图形创建命令获得句柄H_gc=graphiccommand()b) get函数获得句柄的属性函数获得句柄的属性lget(h)lget(h,PropertyName)c)获取当前图形对象的不同句柄获取当前图形对象的不同句柄lgcf:获取当前图形窗口句柄:获取当前图形窗口句柄lgca:获取当前图形窗口内当前坐标轴句柄:获取当前图形窗口内当前坐标轴句柄

7、lgco:获取当前图形窗口内当前对象句柄:获取当前图形窗口内当前对象句柄9.2 图形对象创建2、访问图形对象句柄、访问图形对象句柄% create_obj_handle.m% 创建图形对象句柄函数创建图形对象句柄函数x=-2*pi:0.5:2*pi;y=x;X,Y=meshgrid(x,y);Z=X.3/2-Y.3/2;% 创建坐标轴句柄对象创建坐标轴句柄对象Ha_axes=axes(color,0.8 0.8 0.8,xtick,-8:2:8,ytick,-8:2:8)% 绘制图形绘制图形Ha_surface=surface(xdata,X,ydata,Y,zdata,Z, Facecolo

8、r, get(Ha_axes,color)+0.1, edgecolor,k,marker,o,markersize,3)get(Ha_surface)9.2 图形对象创建2、访问图形对象句柄、访问图形对象句柄AlphaData = 1AlphaDataMapping = scaledCData = (3 by3) double arrayCDataMapping = scaledEdgeAlpha = 1EdgeColor = 0 0 0EraseMode = normalFaceAlpha = 1FaceColor = 0.9 0.9 0.9LineStyle = -LineWidth =

9、 0.5Marker = oMarkerEdgeColor = autoMarkerFaceColor = noneMarkerSize = 3MeshStyle = bothXData = (26by26) double arrayYData = (26by26) double arrayZData = (26by26) double arrayFaceLighting = flatEdgeLighting = noneBackFaceLighting = reverselitAmbientStrength = 0.3DiffuseStrength = 0.6SpecularStrength

10、 = 0.9SpecularExponent = 10SpecularColorReflectance = 1VertexNormals = (26by26by3) double arrayNormalMode = autoBeingDeleted = offButtonDownFcn=Children=Clipping = onCreateFcn = DeleteFcn = BusyAction = queueHandleVisibility = onHitTest = onInterruptible = onParent = 10.00574Selected = offSelectionH

11、ighlight = onTag = Type = surfaceUIContextMenu = UserData = Visible = on9.2 图形对象创建2、访问图形对象句柄、访问图形对象句柄 %设置文本注释并添加标签设置文本注释并添加标签 text(-4,2,fontsize12 surface,Tag,A1) Ht_text=findobj(0,Tag,A1) %查找标签句柄对象查找标签句柄对象Ht_text = 161.0056 %设置新属性设置新属性 set(Ht_text,position,-2 3) H_figure=get(gca,children)H_figure =

12、 161.0056 160.0107 T_figure=get(H_figure,type)T_figure = text surface9.2 图形对象创建3、使用句柄操作图形对象、使用句柄操作图形对象% 查找标签句柄对象查找标签句柄对象% copyobj_example.m% 复制图形对象复制图形对象h=surf(peaks);colormap hot% 创建新的图形窗口创建新的图形窗口figure % 在新窗口中创建坐标轴对象在新窗口中创建坐标轴对象axes % 将原来的图形对象复制到新图形窗口将原来的图形对象复制到新图形窗口new_handle=copyobj(h,gca);color

13、map coolview(2)grid oncopyobj函数函数9.2 图形对象创建3、使用句柄操作图形对象、使用句柄操作图形对象delete函数函数% delete_example.m % 创建图形对象句柄创建图形对象句柄 t=linspace(1,10,100); y=exp(-t/2).*sin(3*t); Hf_plot=plot(t,y,-r*); % 添加文本注释添加文本注释 text(2.1,-0.3,fontsize12y=exp(-t/2).*sin(2*t),Tag,A2);input(任意键清除文本任意键清除文本)H_tag=findobj(0,Tag,A2);dele

14、te(H_tag)9.3 图形对象设置1、使用、使用set命令设置属性命令设置属性set(H,PropertyName,PropertyValue,.)set(H,a)set(H,pn,pv.)% set_obj.m% 使用使用set函数设置图形对象的属性函数设置图形对象的属性x=-2*pi:pi/40:2*pi;y=sin(x);z=cos(x);Hls_line=plot(x,y,x,z)% 通过通过set函数为两条曲线设置颜色函数为两条曲线设置颜色set(Hls_line(1),Color,1,0.5,0,LineWidth,3);set(Hls_line(2),Color,0,0,1)

15、;9.3 图形对象设置2、图形的默认属性、图形的默认属性get(0,default)ans = defaultFigurePosition: 360 246 560 420 defaultTextColor: 0 0 0 defaultAxesXColor: 0 0 0 defaultAxesYColor: 0 0 0 defaultAxesZColor: 0 0 0 defaultPatchFaceColor: 0 0 0 defaultPatchEdgeColor: 0 0 0 defaultLineColor: 0 0 0 defaultFigureInvertHardcopy: on

16、defaultFigureColor: 0.8000 0.8000 0.8000 defaultAxesColor: 1 1 1 defaultAxesColorOrder: 7x3 double defaultFigureColormap: 64x3 double defaultSurfaceEdgeColor: 0 0 0 defaultFigurePaperType: A4 defaultFigurePaperUnits: centimeters9.3 图形对象设置2、图形的默认属性、图形的默认属性%默认属性测试默认属性测试%DefaultT.mH_fig=surf(peaks)view

17、(3)grid oninput(任意键任意键)% 设置默认属性设置默认属性set(gcf,DefaultSurfaceMarker,*);set(H_fig,Marker,default)9.3 图形对象设置3、句柄图形的通用属性、句柄图形的通用属性9.4 高级绘图对象1、Nextplot属性属性在创建图形对象时对图形的父对象(在创建图形对象时对图形的父对象(figure或或axis)进行控制)进行控制设置设置figure的绘制属性时:的绘制属性时:l Add:允许添加子对象,:允许添加子对象,hold onl Replacechildren:清除所有子对象,:清除所有子对象,clfl Rep

18、lace:清除并重新设置为默认值,:清除并重新设置为默认值,clf reset设置设置axis的绘制属性时:的绘制属性时:l Add:允许添加子对象,:允许添加子对象,hold onl Replacechildren:清除所有子对象,:清除所有子对象,clal Replace:清除并重新设置为默认值,:清除并重新设置为默认值,cla reset9.4 高级绘图对象2、Newplot命令命令对当前的对当前的figure、axis的的Nextplot属性进行检查并设置属性进行检查并设置检查和设置检查和设置figure的的Nextplot绘制属性绘制属性l Add:保留子对象,不改变属性:保留子对象

19、,不改变属性l Replacechildren:清除图形中的所有子对象:清除图形中的所有子对象l Replace:清除子对象并重新设置为默认值:清除子对象并重新设置为默认值设置和设置设置和设置axis的的Nextplot绘制属性时:绘制属性时:l Add:保留子对象,设置为默认:保留子对象,设置为默认l Replacechildren:清除所有子对象:清除所有子对象l Replace:清除并重新设置为默认值:清除并重新设置为默认值9.4 高级绘图对象3、高级绘图命令、高级绘图命令高级绘图命令:由底层绘图命令延伸出来绘图命令,如:高级绘图命令:由底层绘图命令延伸出来绘图命令,如:由由surfac

20、e延伸除延伸除mesh、surf等等9.4 高级绘图对象3、高级绘图命令、高级绘图命令% mesh_surf_surface.m% 通过通过surface底层命令来创建高层命令底层命令来创建高层命令mesh,surfclf reset; t=0:0.5:20; r=3-sin(3*pi*t);x,y,z=cylinder(r,50);% 获取坐标轴的背景颜色获取坐标轴的背景颜色fcolor=get(gca,color);% 使用使用surface函数来绘制图形函数来绘制图形h=surface(x,y,z,facecolor,fcolor,edgecolor,flat,. facelightin

21、g,none,edgelighting,flat);view(3); grid on;input(任意键继续任意键继续)%改变改变facecolor的属性或背景颜色为的属性或背景颜色为noneset(h,facecolor,flat,linestyle,-,edgecolor,.8,.8,.8)input(任意键继续任意键继续)%将将meshstyle设置为单线颜色设置为单线颜色set(h,facecolor,interp,meshstyle,column)9.5 坐标轴对象1、坐标轴的集合属性、坐标轴的集合属性位置(位置(Position)left bottom width height描述

22、描述单位(单位(Units)归一化单位,即相对单位,默认归一化单位,即相对单位,默认0 0 1 1figure缩放时,缩放时,axis同步缩放,两者的比例保持不变同步缩放,两者的比例保持不变bottomleftwidthheightbottomleftwidthheight9.5 坐标轴对象1、坐标轴的集合属性、坐标轴的集合属性%查询坐标轴单位属性查询坐标轴单位属性 subplot(2,2,1) mesh(X) subplot(2,2,3) mesh(Y) subplot(2,2,2 4) mesh(X,Y,Z) get(gca,units)ans =normalized get(gca,po

23、sition)ans = 0.5703 0.1100 0.3347 0.81509.5 坐标轴对象2、坐标轴的照相机属性、坐标轴的照相机属性模仿照相机的方式来观察图形模仿照相机的方式来观察图形CameraPositionCameraPosition设定照相机位置设定照相机位置CameraPositionModelCameraPositionModel设定照相机位置的取值模式设定照相机位置的取值模式CameraTargetCameraTarget设定照相机的目标设定照相机的目标CameraTargetModelCameraTargetModel设定照相机的目标的取值模式设定照相机的目标的取值模式

24、CameraUpVectorCameraUpVector设定照相机的正位向量设定照相机的正位向量CameraUpVectorModelCameraUpVectorModel设定照相机正位向量的取值模式设定照相机正位向量的取值模式CameraViewAngleCameraViewAngle设定照相机的视角设定照相机的视角CameraViewAngleModelCameraViewAngleModel设定照相机视角的取值模式设定照相机视角的取值模式ProjectionProjection设定照相机的投影方式设定照相机的投影方式9.5 坐标轴对象2、坐标轴的照相机属性、坐标轴的照相机属性模仿照相机的

25、方式来观察图形模仿照相机的方式来观察图形9.5 坐标轴对象2、坐标轴的照相机属性、坐标轴的照相机属性模仿照相机的方式来观察图形模仿照相机的方式来观察图形% camara_axes.msurf(peaks); axis vis3dxp=linspace(-150,15,500);xt=linspace(0,10,500);for i=1:50 campos(-xp(i),-xp(i),-xp(i); camtarget(xt(i),30,0) drawnowend第第10章章 图形用户界面(图形用户界面(GUI)MATLAB可由用户来设计自己的图形用户可由用户来设计自己的图形用户界面,以方便使用

26、界面,以方便使用l 用户控件对象,按钮、列表框、编辑框等用户控件对象,按钮、列表框、编辑框等l 对话框对话框l 界面菜单,菜单和子菜单界面菜单,菜单和子菜单l M文件编写,建立对象及编写响应程序文件编写,建立对象及编写响应程序l GUI创建工具创建工具第第8章章 图形用户界面图形用户界面(GUI)设计设计资源设计:资源设计:响应函数设计:响应函数设计:10.1 图形对象句柄图形对象句柄句柄:图形对象的标识,获取了句柄之后才可以对图句柄:图形对象的标识,获取了句柄之后才可以对图形对象进行控制,设置或修改对象的有关属性。形对象进行控制,设置或修改对象的有关属性。10.1 图形对象句柄图形对象句柄

27、10.1.1 图形对象图形对象10.1 图形对象句柄图形对象句柄 10.1.2 图形对象句柄图形对象句柄句柄:句柄:Matlab中用一个数字来标识中用一个数字来标识 计算机屏幕:通常为零计算机屏幕:通常为零 图形窗口:整数图形窗口:整数 其它:浮点数其它:浮点数获得句柄的函数获得句柄的函数 gcf:获取当前图形窗口句柄:获取当前图形窗口句柄 gca:获取当前图形窗口内当前坐标轴句柄:获取当前图形窗口内当前坐标轴句柄 gco:获取当前图形窗口内当前对象句柄:获取当前图形窗口内当前对象句柄10.1 图形对象句柄图形对象句柄 10.1.2 图形对象句柄图形对象句柄获取、设置图形对象属性获取、设置图形

28、对象属性 get函数获取对象属性函数获取对象属性get(Hl_a, color) set函数设置对象属性函数设置对象属性set(Hl_a, color, r)10.2 GUI设计工具设计工具 对象设计编辑器(对象设计编辑器(Layout Editor) 菜单编辑器菜单编辑器 对象属性查看器对象属性查看器 位置调整工具位置调整工具 对象浏览器对象浏览器10.2 GUI设计工具设计工具 10.2.1 对象设计编辑器对象设计编辑器10.2 GUI设计工具设计工具 10.2.2 菜单编辑器菜单编辑器10.2 GUI设计工具设计工具 10.2.3 对象属性查看器对象属性查看器10.2 GUI设计工具设计

29、工具 10.2.4 位置调整工具位置调整工具10.2 GUI设计工具设计工具 10.2.5 对象浏览器对象浏览器10.3 菜单菜单 10.3.1 菜单设计菜单设计1. 命令行方式命令行方式由函数由函数uimenu()、uicontextmenu()完成完成格式:格式:hm=uimenu(gcf, label, File);hm1=uimenu(hm, Label, New);hm2=uimenu(hm, Label, Open);hm3=uimenu(hm, Label, Open, Separator, on);10.3 菜单菜单 10.3.1 菜单设计菜单设计2. 菜单编辑器菜单编辑器10

30、.3 菜单菜单 10.3.1 菜单设计菜单设计3. 菜单属性菜单属性CheckedLabelSeparatorAcceleratorTagVisibleEnable10.3 菜单菜单 10.3.1 菜单设计菜单设计4. 菜单响应菜单响应CheckedLabelSeparatorAcceleratorTagVisibleEnable10.4控件控件 10.4.1 控件对象类型控件对象类型命令按钮:命令按钮:开关按钮:开关按钮:单选按钮:又称无线按钮单选按钮:又称无线按钮复选按钮:复选按钮:编辑文本框:编辑文本框:静态文本框:静态文本框:滑标:滑标:框架:框架:列表框:列表框:弹出式菜单:组合框弹

31、出式菜单:组合框10.4 控件控件 10.4.2 控件建立控件建立1. 命令行方式命令行方式由函数由函数uicontrol() 完成完成格式:格式:handle=uicontrol(parent);hc1=uimenu(, PropertyName, PropertyValue,);10.4 控件控件 10.4.2 控件建立控件建立2. GUI设计工具设计工具直接调用设计工具完成直接调用设计工具完成10.5 对话框对话框 10.5.1 公共对话框公共对话框1. 文件打开对话框文件打开对话框由函数由函数uigetfile() 完成完成格式:格式:uigetfileuigetfile(Filter

32、Spec)uigetfile(FilterSpec,DialogTitle)uigetfile(FilterSpec,DialogTitle,x,y)FileName,PathName = uigetfile(.)%打开文件打开文件str1,str2=uigetfile(*.txt,打开文件打开文件)10.5 对话框对话框 10.5.1 公共对话框公共对话框2. 文件保存对话框文件保存对话框由函数由函数uiputfile() 完成完成格式:格式:uiputfileuiputfile(FilterSpec)uiputfile(FilterSpec,DialogTitle)uiputfile(Fi

33、lterSpec,DialogTitle,x,y)FileName,PathName = uiputfile(.)10.5 对话框对话框 10.5.1 公共对话框公共对话框3. 颜色设置对话框颜色设置对话框由函数由函数uisetcolor() 完成完成格式:格式:c = uisetcolor(h_or_c, DialogTitle);%设置颜色设置颜色figure;axis;cf= uisetcolor(gcf, 设置窗口颜色设置窗口颜色); ca= uisetcolor(gca, 设置坐标轴颜色设置坐标轴颜色); 10.5 对话框对话框 10.5.2 一般对话框一般对话框1. 帮助对话框帮助对话框由函数由函数helpdlg() 完成完成格式:格式:helpdlghelpdlg(helpstring)helpdlg(helpstring,dlgname)h = helpdlg(.)10.5 对话框对话框 10.5.2 一般对话框一般对话框2. 错误信息显示对话框错误信息显示对话框由函数由函数e

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论