
Многоугольник
Многоугольник — это то же самое, что и ломаная, за небольшим исключением: первая и последняя строки матрицы вершин должны быть одинаковыми (соответствующие им точки совпадают). Того же результата можно было бы достичь и с использованием функции построения ломаной, однако многоугольник, построенный при помощи специальной функции, распознается системой как объект, имеющий внутреннюю и внешнюю части. Внутренняя площадь многоугольника может быть заполнена штриховкой различных видов (рис. 3.14).
Рисунок 3.14 - Примеры различных заливок
Атрибутами многоугольника могут быть цвет внутренней области (цвет заполнения), а также тип, ширина и цвет ломаной, ограничивающей эту область. Хотя функция построения многоугольников может использоваться и для построения кругов и прямоугольников, в большинстве графических библиотек существуют специальные функции, требующие гораздо меньше входных параметров (например, центр и радиус круга или два конца диагонали прямоугольника). Тем не менее, внутри библиотек эти функции реализованы через функцию построения многоугольников.
Маркер
Маркеры обычно используются для выделения точек на графиках. Маркеры, доступные в большинстве графических библиотек, показаны на рис. 3.15. Тип маркера указывается в качестве атрибута. Полимаркер, как и отрезок, является стандартным объектом в GKS и PHIGS. OpenGL не поддерживает маркеры явно, однако предоставляет механизм сохранения маркеров в растровых файлах и выведения их на экран. Благодаря этому графическая программа, построенная на OpenGL, гораздо лучше переносится на различные платформы.
Рисунок 3.15 - Примеры маркеров
Текст
Большинство графических библиотек поддерживают два вида текста: текст для пояснений (экранный или двумерный текст) и трехмерный текст. Текст для пояснений всегда располагается в плоскости экрана, поэтому его форма не искажается вне зависимости от угла, на который он повернут. Трехмерный текст может быть расположен на любой плоскости в трехмерном пространстве. Его положение и ориентация задаются в мировых координатах. Для текста любого вида необходимо задание таких параметров, как шрифт, отношение высоты к ширине и угол наклона букв, а также положение и направление строки текста. Текст может быть представлен символами двух видов: аппаратными и программными. Программный шрифт строится соответствующими графическими программами, заранее сохраняемыми в памяти компьютера. Построение его занимает больше времени, чем построение символов аппаратного шрифта, но зато форма может быть гораздо более замысловатой. Символы аппаратного шрифта состоят из отдельных отрезков, формирующих буквы.
Ввод графики
Как уже отмечалось, графической программе может требоваться поддержка ввода графических элементов, таких как точки, отрезки и многоугольники, а не только чисел и текстовых строк. Например, если пользователь хочет вычислить площадь многоугольника на экране или увеличить его размеры, он должен сначала указать интересующий его многоугольник среди прочих объектов, видимых на экране. Для ввода графики используется два вида физических устройств: локатор (устройство ввода координат) и кнопка. Локатор (locator) передает графической программе информацию о своем положении, то есть о положении курсора. Кнопка (button) сообщает о действиях пользователя (включении и выключении) в месте текущего положения курсора. В наши дни наиболее популярным устройством графического ввода является мышь, которая выполняет обе функции. Шарик в нижней части корпуса мыши позволяет вводить координаты, а кнопки наверху корпуса передают программе действия пользователя.
Устройство графического ввода может работать в трех режимах: опрос, запрос и выбор. В режиме опроса (sampling) осуществляется постоянное считывание состояния устройства ввода, прежде всего положения локатора. Например, если вы свободно рисуете на экране, перемещая мышь, она работает в режиме опроса. Перемещение мыши приводит к непрерывному перемещению курсора по экрану. В режиме запроса (requesting) положение локатора считывается только при отправке запроса, которая обычно производится при нажатии на кнопку мыши. Чтобы прояснить различие между режимами опроса и запроса, рассмотрим процесс построения многоугольника путем графического задания координат его вершин при помощи мыши. В этом случае мы перемещаем мышь до тех пор, пока курсор не окажется в нужном месте, после чего нажимаем кнопку. Курсор перемещается по экрану согласно движениям мыши, которая находится при этом в режиме опроса. Координаты вершин передаются графической программе в режиме запроса. У этих режимов есть общее свойство: графической программе передаются координаты мыши или курсора. В режиме выбора (picking) устройство графического ввода идентифицирует элемент экрана, на который указывает курсор в момент нажатия кнопки. Графические элементы можно идентифицировать по именам, присвоенным им программистом во время составления программы. Режим выбора очень удобен при редактировании чертежа, уже имеющегося на экране (например, для удаления многоугольников или изменения координат их вершин).