Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаба 1 по ММ. Основы работы с пакетом Matlab

.pdf
Скачиваний:
101
Добавлен:
01.06.2015
Размер:
1.79 Mб
Скачать

61

Функционирование графического интерфейса

Принципиальная схема взаимодействия модулей разработанной программы показана на рис.11. Головная программа DRIVE вызывает основную графическую программу NAME.M, которая при первом исполнении создает графический интерфейсный экран с кнопками, окнами, поясняющим текстом и т.д. После этого система переходит в режим ожидания событий - нажатия мышкой в интерфейсном окне. Если это нажатие происходит в редактируемом окне, после чего с помощью клавиатуры изменяется значение в этом окне и нажимается клавиша Enter, то начинается выполнение процедуры Func_Edit, которая и обновляет соответствующие данные в записи info, после чего заносит обновленные значения в UserData. Если же происходит нажатие на кнопку Run, то обновляются значения редактируемых окон и выполняется функция Run.

Рис. 11. Принципиальная схема функционирования графического интерфейса

Разработка функции Run

Функция выполнения основного действия (кнопка RUN) пишется на основании ранее имевшейся программы расчета R-C цепочки. Первая группа добавляемых операторов - извлечение новых значений задаваемых переменных

h0=gcf;

info=get(h0,’UserData’);

N=info.N;

62

R=info.R;

C=info.C;

....................

%Основной расчетный алгоритм

%Построение насчитанных графиков в окне

%Первое окно - рисуем сигнал

hax1=finobj(’Tag’,’Axes1’); % Определение дескриптора осей этого

окна

 

subplot(hax1);

% Рисуем подрисунок в этом окне

cla;

% Стирание предыдущего изображения в этом

окне

 

hl1=line(t,E);

% Определить линию с дескриптором hl1

set(hl1,’color’,’r’,...

% Обновить данные для линии hl1 цветом ’r’

’parent’,hax1);

% в осях hax1

title(’Сигнал E(t)’);

% добавить надпись к этому окну

...........................

 

И так далее для каждого окна.

Разработка функции Exit

Самая простая процедура - это процедура отключения программы и стирания рисунка

function f=Func_Exit() delete(gcf);

После выполнения этой процедуры удаляются все графические объекты в текущем окне и закрывается графическое окно.

Разработка функции Edit

Функция редактирования значений в окнах ввода. h0=gcf;

%Считывание данных из общего блока всего рисунка. info=get(h0,’UserData’);

%Определение дескриптора редактируемого окна hedN=findobj(h0,’Tag’,’EditN’

%Сканирование строки с преобразованием к формату e newN=sscanf(get(hedN,’string’),’%e’);

if ~isempty(newN)

63

info.N=newN;

end;

................

Дескриптор соответствующего редактируемого окна в данном примере находится с помощью функции findobj - нахождение объекта по известному значению его свойства (в данном случае - свойству Tag). Можно эти дескрипторы передавать из процедуры NAME.M с помощью оператора global или через свойство UserData. В конце всей функции после выполнения группы операторов, подобных приведенным, для каждого редактируемого окна необходимо результаты обновления info присвоить свойству ’UserData’ с помощью оператора

set(h0,’UserData’,info); % Занесение новых данных из info в UserData.