- •Санкт-Петербургский государственный электротехнический университет
- •______________________________________________________________________ Кафедра моэвм
- •Санкт-Петербург
- •2007 Введение
- •Взаимодействие между пользователем и компьютером
- •Основные принципы создания интерфейса
- •Проектирование эргономичного интерфейса
- •Размещение информации на экране
- •Использование цвета
- •Выделение элементов интерфейса
- •Непротиворечивость и стандартизация
- •Отображение текстовой информации
- •Ввод текстовой информации
- •Дизайн заголовков и полей
- •Средства управления графическим интерфейсом
- •Принципы создания и проектирования меню
- •5. Дескрипторная графика
- •5.1. Назначение дескрипторной графики
- •5.2. Иерархия графических объектов
- •5.3. Текущий графический объект; указатели на объекты
- •5.4. Доступ к значениям свойств графических объектов
- •5.5. Свойства осей
- •5.6. Свойства графических окон
- •5.6.1. Расположение и вид графических окон
- •5.6.2. Способы графического вывода
- •5.6.3. Цветовая палитра
- •5.6.4. Печать графического окна
- •5.7. Базовые графические объекты.
- •5.7.1. Текстовый объект, вывод текста и математических формул в графическое окно.
- •5.7.2. Размещение текстового объекта, определение его размеров и положения.
- •5.7.3. Размещение текста на трехмерных графиках.
- •5.7.4. Изменение вида текстового объекта.
- •5.7.5. Указание положения текстового объекта и надписи при помощи свойств. Пример: "бегущая строка".
- •5.7.6. Вывод многострочного текста.
- •5.7.7. Примечание про логическое индексирование.
- •5.7.8. Заголовок и подписи осей это текстовые объекты, потомки осей.
- •6. Приложения с gui
- •6.1. Создание приложения hello в среде guide
- •6.2. Запуск приложения без среды guide и редактирование
- •6.3. Как работает приложение, созданное в среде guide?
- •7. Заключение
5.7. Базовые графические объекты.
Базовые (Core) графические объекты занимают нижний уровень в иерархии графических объектов MATLAB, предком базовых графических объектов являются оси. Следовательно, их вывод возможен только при наличии осей, которые при желании можно сделать невидимыми и, кроме того, совпадающими по размеру с графическим окном. Тогда базовые объекты можно размещать в произвольном месте области графического окна. Всего в MATLAB существует семь базовых графических объектов:
Рисунок (Image). Создается функцией image, в списке ее входных аргументов надо указать массив, содержащий информацию о цвете каждого пикселя в формате RGB (трехмерный массив) или индексированный цвет (двумерный массив). Для чтения этой информации из графического файла служит функция imread, которая понимает основные графические форматы: bmp, gif, jpeg, pcx, tiff и др.
Источник света (Light). Создается функцией light и служит для освещения поверхности (Surface) и полигонального объекта (Patch). На одних осях может быть расположено несколько источников света, каждый со своими свойствами: цвет света, тип лучей. Лучи могут быть параллельные, т.е. идущие от бесконечно удаленного источника, или лучи, исходящие из точечного источника, расположенного в определенной точке пространства.
Линия (Line). Ломаная линия создается функцией line и задается координатами вершин. Возможно изменять стиль, цвет и толщину линии, размещать различные маркеры в вершинах и выбирать их размер, цвет границы и внутренности.
Полигональный объект (Patch). Создается функцией patch. Служит для создания плоских и трехмерных объектов, в том числе и достаточно сложной формы. Полигональный объект задается либо координатами вершин каждой грани, либо координатами всех вершин и тем, какие грани они образуют. Возможны различные способы закраски граней и ребер полигонального объекта: как постоянным цветом, так и цветами, меняющимися от вершины к вершине, а также указание прозрачности граней и ребер и свойств, отвечающих за освещение полигонального объекта
Прямоугольник (Rectangle). Создается функцией rectangle, которая позволяет указать величину скругления углов. Так что можно рисовать не только прямоугольник или квадрат, но и эллипс и круг. Возможно изменять цвет границы и внутренности, а так же стиль линии границы.
Поверхность (Surface). Создается функцией surface. Поверхность задается на прямоугольной сетке значениями в каждом ее узле. Обычно, для создания прямоугольной сетки применяется функция meshgrid. Возможно изменение цвета ячеек и их границ, способов их закраски, прозрачности ячеек и границ, свойств линий границ ячеек, указание свойств, отвечающих за освещение поверхности светом, а также размещение маркеров заданного вида, размера и цвета в вершинах ячеек.
Текстовый объект (Text). Создается функцией text. Текст может быть отформатирован различными шрифтами и начертанием, цветом, заключен в рамку (свойства линий рамки и цвет ее внутренности можно изменять), повернут на заданный угол. Для набора математических формул доступны возможности TeX и LaTeX.
В справочной системе MATLAB информация о базовых объектах доступна в нескольких разделах:
Справочник свойств графических объектов MATLAB: Handles Graphics Property Browser (в правом окне далее надо перейти по гиперссылке Axes, далее в дереве по ссылке Core Objects).
MATLAB: Graphics: Handle Graphics Objects: Core Objects.
Работа с графическими изображениями (объектами Image) описана в разделе MATLAB: Graphics: Displaying Bit-Mapped Images.
Моделирование сложных объектов при помощи полигональных объектов рассмотрено в разделе MATLAB: 3-D Visualization: Creating 3-D Models with Patches.
Техника освещения объектов разбирается в разделе MATLAB: 3-D Visualization: Lighting as a Visualization Tool.
Свойства графических объектов, отвечающие за их прозрачность и их использование см. в разделе MATLAB: 3-D Visualization: Transparency.
Кроме того, для быстрого перехода к свойствам объектов можно посмотреть справку по низкоуровневой функции, которая создает данный объект: image, text, line, rectangle, surface, patch, light, например:
>> doc text
(для отображения окна браузера справочной системы с информацией о функции text и текстовом объекте), или
>> help text
(для вывода краткой информации о функции text в командное окно, выводятся также гиперссылки для перехода к описанию родственных функций).