《数学应用软件》试验(四)【句柄图形和图形用户界面制作】

更新时间:2023-06-03 14:19:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《数学应用软件》实验指导书

2015年 7

实验四 句柄图形和图形用户界面制作

一、实验目的

1、 熟悉句柄图形体系的对象树结构。

2、 熟练掌握句柄图形体系的对象属性的创建、设置、查询。

3、 熟练掌握句柄的获取。

4、 熟练掌握图形用户界面(GUI)的制作。

二、实验内容

1、句柄的获取

gcf 、gca、gco、findobj、图形创建指令、追溯法等方法获取图形句柄的联系。常用的图形句柄操作函数如下表]

在command窗口键入以下指令:

>> X = linspace(-pi,pi,25);

>> Y = sin(X);

>> plot(X,Y,'rX');

>>gcf

>>gca

观察指令窗及图形窗中的结果。

2、句柄图形体系的对象属性的创建、设置、查询

在command窗口键入以下指令:

h_line = findobj(gca,'Marker','X')

get(h_line)

h_line_parent = get(h_line,'Parent');

isequal(h_line_parent,gca)

set(gca,'Color',[0,0,0])

set(h_line,'Color',[1 1 1],'MarkerSize',10);

set(gca,'XGrid','on','GridLineStyle','-.','XColor',[0.75 0.75 0])

set(gca,'YGrid','on','GridLineStyle','-.','YColor',[0 0.75 0.75])

set(gcf,'Color',[0 0 1])

观察指令窗及图形窗中的结果。

3、对象属性的缺省设置和查询

键入以下程序:

t=(0:pi/50:2*pi)';

k=0.4:0.1:1;Y=cos(t)*k;

line(t,Y,'Color',[1 0 0],'LineStyle','-.')

clf reset

set(gca,'ColorOrder',[0 0 0;0.7 0.7 0.7],'LineStyle','-|:')

line(t,Y)

clf reset

set(gcf,'DefaultAxesLineStyleOrder','-|:');

set(gcf,'DefaultAxesColorOrder',[1 0 0;0 0 1]);

line(t,Y)

观察指令窗及图形窗中的结果。

4、界面菜单、快捷菜单、现场菜单的制作:figure、set、uimenu的使用

(1)在command窗口键入以下指令:

>>h_fig=figure

观察图形窗中的结果。

(2)在command窗口键入以下指令:

Set(h_fig,'menubar','none')

观察图形窗中的结果。

(3)在command窗口键入以下指令:

Set(gcf,'menubar','figure')

观察图形窗中的结果。

(4)自制用户菜单

采用uimenu建立菜单项,语法如下:

h_menu=uimenu(Hx_parent,’PropertyName’,PropertyValue ,…);

Hx_parent为父辈对象的句柄,PropertyName为属性,PropertyValue属性值。 最重要的属性为Label和Callback,Label属性值是显示在菜单条上的文本字串,Callback是调用过程或函数执行有关功能。

键入以下程序:

figure

h_menu=uimenu(gcf,'label','&Color');

h_submenu1=uimenu(h_menu,'label','&Blue',...

'callback','set(gcf,''color'',''blue'')');

h_submenu2=uimenu(h_menu,'label','&Red',...

'callback','set(gcf,''color'',''red'')',...

'Accelerator','r');

观察指令窗及图形窗中的结果。还可将其中的句柄改变为别的图形对象的句柄,或将其中的一些属性的属性值修改后看其效果。

(5)现场菜单的制作

键入以下程序:

t=(-3*pi:pi/50:3*pi)+eps;

y=sin(t)./t;

hline=plot(t,y);

cm=uicontextmenu;

uimenu(cm,'label','Red','callback','set(hline,''color'',''r''),')

uimenu(cm,'label','Blue','callback','set(hline,''color'',''b''),')

uimenu(cm,'label','Green','callback','set(hline,''color'',''g''),')

set(hline,'uicontextmenu',cm)

观察指令窗及图形窗中的结果。还可将其中的句柄改变为别的图形对象的句柄,或将其中的一些属性的属性值修改后看其效果。

5、用户控件的制作:

按钮、复选框、单选框、文本编辑框、静态文本、滑标、框架等控件的制作。采用uicontrol函数实现,语法如下:

Hc_1=uicontrol(Hf_fig, ’PropertyName’,PropertyValue ,…)

Hf_fig是图形句柄,’PropertyName’,PropertyValue用来定义uicontrol的属性。一个重要的PropertyName是“style”,其常用属性值如下 按钮

键入以下程序:

clf reset

set(gcf,'menubar','none')

set(gcf,'unit','normalized','position',[0.2,0.2,0.64,0.32]);

set(gcf,'defaultuicontrolunits','normalized')

h_axes=axes('position',[0.05,0.2,0.6,0.6]);

t=0:pi/50:2*pi;y=sin(t);plot(t,y);

set(h_axes,'xlim',[0,2*pi]);

set(gcf,'defaultuicontrolhorizontal','left');

htitle=title('正弦曲线');

set(gcf,'defaultuicontrolfontsize',12);

uicontrol('style','frame',... 单选框 check text 复选框 静态文本edit 文本编辑框 slider 滑标 frame 框架

'position',[0.67,0.55,0.25,0.25]);

uicontrol('style','text',...

'string','正斜体图名:',...

'position',[0.68,0.77,0.18,0.1],...

'horizontal','left');

hr1=uicontrol(gcf,'style','radio',...

'string','正体','position',[0.7,0.69,0.15,0.08]);

set(hr1,'value',get(hr1,'Max'));

set(hr1,'callback',[...

'set(hr1,''value'',get(hr1,''Max'')),',...

'set(hr2,''value'',get(hr2,''Min'')),',...

'set(htitle,''fontangle'',''normal''),']);

hr2=uicontrol(gcf,'style','radio',...

'string','斜体','position',[0.7,0.58,0.15,0.08],...

'callback',[...

'set(hr1,''value'',get(hr1,''Min'')),',...

'set(hr2,''value'',get(hr2,''Max'')),',...

'set(htitle,''fontangle'',''italic''),']);

ht=uicontrol(gcf,'style','toggle',...

'string','Grid',...

'position',[0.67,0.40,0.15,0.12],...

'callback','grid');

观察指令窗及图形窗中的结果。

6、设计

(1)利用低层绘图指令绘制一条正弦曲线。要求采用实线、线色取[0.2 0.8 0.8]、线粗3磅;还要求写出所画正弦曲线所在轴的句柄。制作一现场菜单;包括三个子菜单line style(当用户选择该菜单项时,产生将线改为虚线的操作);line color(当用户选择该菜单项时,产生将线色改为紫色的操作);line width(当用户选择该菜单项时,产生将线粗细改为12磅的操作)。

(2)对于传递函数为G=1/(s2+2 s+1),制作一个能绘制该系统单位的阶跃响应。要求界面包括:供输入 值的"可编辑文本框";用来改变线色的"单功能按键";用来改变线的类型的"弹出框"。

三、实验要求

1、会获取和显示图形对象的句柄。

2、会设置菜单和子菜单。

3、会设置用户控件。

本文来源:https://www.bwwdw.com/article/u4k1.html

Top