Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MATLAB.docx
Скачиваний:
27
Добавлен:
22.09.2019
Размер:
229.43 Кб
Скачать

11 Использование графических функций низкого уровня и дескрипторногой графики

MATLAB может создавать как плоские графики, так и трехмерные сетчатые поверхности, а также движущиеся графики, или анимацию. Для знакомства с некоторыми графическими возможностями имеющейся у вас версии запустите программу demo. Основными и наиболее часто употребительными являются графики, которые представляют собой линии, описывающие те или иные численные данные. MATLAB предоставляет набор команд высокого уровня, которые используются для построения таких линий. Это такие команды, как plot, title, axis, text, hist,contour и ряд других, описанных в следующих двух разделах .Графические объекты -это те базисные объекты, из которых на экране возникает изображение. Даже самый элементарный график состоит из нескольких графических объектов. Это окно, в котором выводится график, линии, оси, метки на осях и т.д. Все графические функции высокого уровня, описанные ранее, создавали такие графические объекты как линии (line), оси (axes) и др. Все эти объекты являются строительными блоками, из которых MATLAB создает различные изображения. Существуют графические команды низкого уровня, которые создают 10 типов графических объектов в дополнение к корневому объекту, который создается автоматически при входе в MATLAB. Дескрипторы можно воспринимать как метки, ярлычки соответствующих объектов. Их нельзя изменять. Они создаются и уничтожаются вместе с объектами, но каждый объект однозначно определяется своим дескриптором. Дескриптор экрана (root) и дескриптор рисунка (figure) имеют целые значения ,все остальные дескрипторы имеют значения вещественные. Все функции низкого уровня и большинство функций высокого уровня возвращают значение дескриптора, если они вызываются с выходным аргументом. Если при вызове, например, функции высокого уровня plot создается несколько однотипных объектов (несколько линий), то возвращаемый дескриптор является вектор-столбцом. Хотя, как мы знаем, объекты-предки, не созданные явно заранее, создаются в процессе создания объекта-наследника, тем не менее, используя только третью строку вышеприведенного примера, мы создадим рисунок и оси, но их дескрипторы не узнаем во время создания самих объектов. Не все функции высокого уровня при обращении к ним в виде h=f() возвращают дескрипторы соответствующих объектов. Не возвращают дескрипторы следующие функции:bar compass errorbar, feather ,fplot, hist, polar, rose, stairs, quiver, sphere ,cylinder. Если вы не сохранили дескриптор рисунка, осей или других созданных объектов, их дескриптор можно получить с помощью ряда команд. Например, дескриптор текущего рисунка можно получить с помощью команды gcf(get current figure),дескриптор текущих осей (т.е. тех осей, в которых сейчас будет происходить рисование) можно получить с помощью команды gca(get current axes). Если на рисунке несколько осей, то мы получим дескриптор той области рисования, которая была создана последней или внутри которой последним создавался какой-либо объект. Существует на рисунке еще объект, который называется текущим. Это такой объект, который был последним создан, с которым последним производили манипуляции или на котором последним щелкали мышкой. Дескриптор такого объекта можно получить с помощью команды gco(get current object). Если тем или иным способом вы сохранили дескрипторы объектов, то вы можете делать текущим тот или иной объект (т.е. переходить от объекта к объекту) с помощью команд figure(fig_handl) и/или axes(axes_handl). Дескрипторы, или функции, возвращающие дескрипторы (gcf, gca и др.), могут использоваться в качестве аргументов функций, которые изменяют или устанавливают те или иные свойства объектов. Это прежде всего описанные далее функции get и set. Одним из самых популярных способов узнать и/или использовать дескриптор объекта является обращение к функции findobj. Если эту функцию использовать без параметров, то в результате она выдаст список всех дескрипторов объекта Root 151и всех его наследников. При использовании функции в виде H=findobj(hl), где hl -дескриптор какого-нибудь созданного объекта, будет возвращен и занесен в массив H список дескрипторов данного объекта и всех его наследников. При использовании же этой функции в виде h=findobj(’Имя_Свойства’,’Значе- ние_Свойства’) будет получен список всех дескрипторов объектов, у которых свойство с именем ’Имя_Свойства’ имеет значение’Значение_Свойства’. Если таких объектов окажется несколько, то будет получен вектор дескрипторов.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]