Интерфейс графического устройства GDI. Инструменты для рисования. Установка характеристик пера и кисти для рисования примитивов

Страницы работы

Содержание работы

Основные понятия

Интерфейс графического устройства GDI предназначен для взаимодействия приложений Windows с графическими устройствами.

Когда приложение обращается к GDI для выполнения операции вывода графического изображения, они работают не с реальным ( физическим) устройством, а с логическим.

Интерфейс GDI состоит из контекста отображения и инструментов для рисования.

Контекст отображения можно сравнить с листом бумаги, на котором приложение рисует то или иное графическое изображение, или точнее это структура данных, описывающая устройство отображения. Как правило, идентификатор   контекста устройства получают с помощью функции BeginPaint()

Hdc  = BeginPaint ( hWnd, &ps);

Где hWnd – это идентификатор текущего окна, а ps указатель на структуру, описанную в файле заголовков WINDOWS.H или WINGDI.H

По умолчанию GDI работает в режиме пиксельных координат. Сначала получается информация о драйвере устройства, а затем обеспечивается возможность вывода фигур с корректным коэффициентом отношения масштабов по осям и соответствующим разрешением.

Предусмотрены семь режимов отображения, позволяющих выводить изображение, опираясь на семь режимов отображения, позволяющих выводить изображение. Опираясь на метрическую систему, английскую систему или единицы измерения, заданные пользователем.

Изменить принятый по умолчанию режим отображения можно при помощи функции SetMapMode()

SetMapMode( hdc,  fnMapMode);

Параметр  fnMapMode может задаваться как одно из восьми значений

Константа

Значение

MM_ISOMETRIC

Произвольные единицы с произвольным масштабом осей

MM_HIENGLISH

Логическая единица отображается в 0.001 дюйма. Положительное направление осей Х – направо, У - вверх

MM_HIMETRIC

Логическая единица отображается в 0.01 миллиметра. Положительное направление осей Х – направо, У - вверх

MM_ISOTROPIC

Произвольные единицы с одинаковым масштабом осей

MM_LOMETRIC

Логическая единица отображается в 0.1 миллиметра. Положительное направление осей Х – направо, У - вверх

MM_LOENGLISH

Логическая единица отображается в 0.01 дюйма. Положительное направление осей Х – направо, У - вверх

MM_TEXT

Логическая единица отображается в пиксель. Положительное направление осей Х – направо, У - вниз

MM_TWIPS

Логическая единица отображается в 1/20 принтерной точки. Положительное направление осей Х – направо, У - вверх

Microsoft SDK описывает более 20 атрибутов контекста отображения. К ним относятся

¨  цвет фона,

¨  режим фона,

¨  режим рисования,

¨  цвет текста,

¨  шрифт,

¨  цветовая палитра,

¨  кисть,

¨  режимы закрашивания многоугольников

¨  перо,

¨  текущая позиция пера,

¨  изображение bitmap,

¨  режим растяжения

¨  начало системы координат для окна

¨  начало системы физических координат

¨  масштаб осей для окна

Инструменты для рисования - это перья, кисти, а также целые графические изображения, с помощью которых можно создавать изображения. Функции рисования не имеют параметров, указывающих цвет или толщину линии. Такие параметры хранятся в контексте отображения.

ЗАДАНИЕ

Создать демонстрационную программу функций рисования графических изображений (GDI) в различных режимах фона и с использованием различных растровых операций. Общая программа образуется при выполнении всех заданий лабораторных работ.

Лабораторная работа 1

В программе должно быть реализовано меню DRAW , предназначенное для выбора фигур, отображаемых в окнах приложения (предпочтительно режим MDI).

Графический примитив

Функция

Прямые линии

 LineTo().

Ломаная линия

Polyline(), PolylineTo()

Вывод линейных сегментов и кривых Безье

PolyDraw()

Дуга эллипса

Arc(), ArcTo(),

Прямоугольники

Rectangle(), RoundRect().

Многоугольники

Polygon()

Эллипс

Ellipse()

Окружность

Circle().

Сегмент эллипса

Chord().

Сектор эллипса

Pie().

Работа с пикселами

SetPixel(), GetPixel()

Лабораторная работа 2

В программе при отображении фигур должно быть реализована возможность изменения атрибутов.

1.  Перо - Pen ->BLACK_PEN, WHITE_PEN, .NULL_PEN

2.  Стиль линии --> PS_SOLID, PS_DASH, PS_DOT, PS_DASHDOT, PS_DASHDOTDOT, PS_NULL.

3.  Режим фона à OPAQUE, TRANSPARENT.

4.  При рисовании многоугольников àВыбор кисти.

5.  При рисовании многоугольников àУстановка стиля штриховки

6.  При рисовании многоугольников àРежимы закрашивания многоугольников (ALTERNATE, WINDING).

7.  Управление выбором режима рисования à ROP

Установка характеристик пера и кисти для рисования примитивов.

В программе должна быть предусмотрена возможность настройки пера (выбор одного из примитивов пера, либо среди дополнительных), настроек кисти, стиля заливки, режим фона и рисования.

Похожие материалы

Информация о работе