
- •Моделирование движения голономных механических систем в пакете Matlab
- •Введение
- •Основы программирования в системе Matlab
- •Работа с матрицами
- •Построение графиков
- •Дескрипторная графика [2] Графические объекты
- •Использование дескрипторов объектов
- •Функции для работы с графическими объектами
- •Установка свойств объекта
- •Определение осей или рисунка
- •Нахождение дескрипторов существующих объектов
- •Скрипты и функции
- •Полезные команды
- •Решение систем дифференциальных уравнений
- •Визуализация движения в Матлабе
- •Библиотека примитивов
- •Окружность
- •Заштрихованная кривая
- •Спираль
- •Пружина
- •Примеры моделирования голономных систем Диск с маятником
- •Визуализация динамики механической системы.
- •Уравнения равновесия системы
- •Динамические эффекты на примере диска с маятником
- •Цилиндр, катающийся в подвижном желобе
- •Заключение
- •Литература
Дескрипторная графика [2] Графические объекты
Как уже было указано выше, для построения графиков используются высокоуровневые функции (например, plot, mesh) и инструмент Matlab plotting tools. При создании графика автоматически создается иерархия графических объектов. Ключевыми графическими объектами являются:
Графическое окно (Figures), которое содержит оси, меню, выводимые изображения.
Оси (Axes) – система координат, содержащая графики.
Рисованные объекты (Lineseries plot objects) – представление данных, переданных функции plot.
Каждый графический объект имеет фиксированное множество свойств, которые можно использовать для управления поведением и отображением графика. К примеру, следующее выражение создает рисунок с белым цветом фона и без отображения панели инструментов2 рисунка:
figure('Color','white','Toolbar','none')
Использование дескрипторов объектов
Когда Matlab создает графический объект, он присваивает объекту идентификатор (также называемый дескриптором). К примеру, следующие выражения создают график и возвращают дескриптор объекта в переменную h:
x = 1:10;
y = x.^3;
h = plot(x,y);
Дескриптор используется для доступа к свойствам объекта с помощью функций set и get. В качестве примера следующей командой устанавливается красный цвет для объекта с дескриптором h:
set(h,'Color','red')
Однако указывать свойства объекта, например, устанавливать цвет, можно и при вызове функции plot:
h = plot(x,y,'Color','red');
Есть возможность узнать значение конкретного свойства объекта по дескриптору этого объекта, для этого предназначена команда get. Например,
get(h,'LineWidth')
Результат выполнения команды:
ans =0.5000
Использование команды get без указания конкретного свойства объекта get(h) используется для получения всех свойств объекта с дескриптором h:
Функции для работы с графическими объектами
В данном разделе будут рассмотрены наиболее употребимые функции работы с объектами.
Функция allchild(дескрипторы_объектов) находит всех детей объектов с указанными дескрипторами.
Функция ancestor находит предка графического объекта, имеет следующий синтаксис:
p = ancestor(h,type) возвращает дескриптор ближайшего предка объекта с дескриптором h, если предок является одним из типов графических объектов, указанных в аргументе type. В качестве type может быть задано:
строка-имя типа объекта. Например, 'figure';
матрица элементов, содержащая имена различных объектов. Например, {'hgtransform','hggroup','axes'}.
Функция copyobj копирует графический объект и его потомки, имеет следующий синтаксис:
new_handle = copyobj(h,p) копирует один или более графических объектов, идентифицируемых дескриптором h, и возвращает дескриптор нового объекта или вектор дескрипторов новых объектов. Новые графические объекты являются детьми графических объектов с дескриптором p.
Функция delete удаляет объект. Она имеет следующий синтаксис:
delete(h) удаляет графический объект с дескриптором h. h также может быть вектором или матрицей дескрипторов.
Функция gca возвращает дескриптор осей активного рисунка.
Функция gcf возвращает дескриптор активного рисунка.
Функция gco возвращает дескриптор активного объекта.
Функция get выводит значения свойств объекта, имеет следующий синтаксис:
get(h) возвращает все свойства графического объекта с дескриптором h и их текущие значения. h должен быть скаляром.
get(h,'PropertyName') возвращает значение свойства 'PropertyName' графического объекта с дескриптором h.
Функция ishandle возвращает true, если значение является адекватным дескриптором объекта.
Функция set устанавливает значения свойств объекта, имеет следующий синтаксис:
set(H,'PropertyName',PropertyValue,...) устанавливает указанные значения именованных свойств объекта, определяемого дескриптором H. Если H –вектор дескрипторов, set устанавливает значения свойств всех объектов с дескрипторами из H.
Пример:
axes;
set(gca,'Color','b')