Графический пользовательский интерфейс может быть разработан с помощью дескрипторной графики, которая позволяет:
- избежать ошибок при нахождении дескрипторов графических элементов с помощью функции findobj;
- обеспечить сложное взаимодействие графических элементов интерфейса между собой;
- обеспечить сложную динамическую перестройку элементов управления в процессе работы всего приложения.
l Создание стандартного графического окна со свойствами по умолчанию
hf1=figure
l Создание двух графических окон со свойствами по умолчанию
hf1=figure
hf2=figure
l Изменение свойств объекта
l Первый способ
hf=figure( 'Position', [0,0,800,500])
l Второй способ
hf=figure
set ( hf, 'Position', [0,0,800,500])
l Активизация объекта
figure (hf)
l Удаление объекта
delete (hf)
l Получение значений свойств
get(h)
l Некоторые свойства
Color – цвет фона
Resize – изменение размеров окна
Units – задание единиц измерения размеров
l Примеры
set(h, 'Color',[1 0 0])
set(h, 'Resize','off')
l Создание стандартного графика со свойствами по умолчанию
ha1=axes
l Создание двух графиков со свойствами по умолчанию
ha1=axes
ha2=axes
l Изменение свойств объекта
l Первый способ
ha= axes( 'Position', [0,0,500,300])
l Второй способ
ha=axes
set ( ha, 'Position', [0,0,500,300])
l Активизация объекта
axes (ha)
l Удаление объекта
delete (ha)
l Получение значений свойств
get(ha)
l Сразу же после создания двух объектов axes в пределах одного графического окна, активным является последний из созданных объектов
l Пользователь может изменить активный объект щелчком мыши
l Перед выводом графической информации объект нужно активизировать
l Объект image предназначен для вставки растровых изображений в графическое окно
l Растровое изображение может быть получено программно или считываться из файла
l Графический файл должен иметь один из следующих стандартных форматов:
l bmp
l jpg
l pcx
l tif
l др
l Пример вставки изображения из файла:
axes(ha)
tx=imread('bear.jpg','jpg');
image(tx);
l tx – матрица, хранящая растровое изображение
l Для того, чтобы убрать разметку осей, можно воспользоваться приемом:
c=get(h,'Color')
set(ha,'XColor',c)
set(ha,'YColor',c)
l Для того, чтобы размеры растрового изображения и поля графика для его вывода совпадали, можно получить информацию о размерах графического файла командой:
imfinfo('bear.jpg','jpg')
l Элементы графического пользовательского интерфейса создаются функцией-конструктором
uicontrol
l Общий вид
uicontrol (hf, 'S1‘ ,‘Z1‘, 'S2‘ ,‘Z2‘,…,'SN‘ ,‘ZN‘ )
l Пример создания кнопки
hbt1=uicontrol( hf, 'Style‘ ,'pushbutton',...
'Position',[350,300,100,50],…
'String‘ , 'Расчет', 'Callback', 'C_B1')
l Пример создания статического текста
uicontrol ( hf, 'Style', 'text',...
'Position', [100,450,200,30], 'String',...
'Исходные данные')
l Пример создания редактируемого поля для ввода данных
he1=uicontrol (hf, 'Style', 'edit',...
'Position', [200,400,100,30])
l Пример создания слайдера
hs1=uicontrol (hf, 'Style', ‘slider',...
'Position', [200,400,100,30],…
‘Callback’, ‘sld’)
Постановка задачи
Разработать графический пользовательский интерфейс для моделирования гидравлического демпфера, выполняющий следующие функции:
l ввод внутренних параметров
l расчет выходных параметров (перемещения и скорости демпфера);
l графическое отображение выходных параметров.
l Уравнение движения демпфера имеет вид:
l Исходными данными для решения задачи являются:
l y0 –отклонение поршня демпфера от положения равновесия;
l m – масса поршня;
l с – жесткость пружины;
l μ – динамический коэффициент вязкости жидкости;
l D – диаметр цилиндра;
l d – диаметр отверстия;
l H – высота поршня;
l z –число отверстий.
Для решения дифференциального уравнения в Matlab его нужно привести к системе из двух дифференциальных уравнений вида:
Для реализации задачи создадим три М-файла:
l Proba2 – файл дескрипторного графического интерфейса (основная программа)
l C_B1 – файл расчета внутренних параметров и решения ОДУ модели
l vid2 – файл, описывающий вид системы ОДУ модели
l Рассмотрим построение файла основной программы.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.