Интерфейс графического устройства 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) в различных режимах фона и с использованием различных растровых операций. Общая программа образуется при выполнении всех заданий лабораторных работ.
В программе должно быть реализовано меню DRAW , предназначенное для выбора фигур, отображаемых в окнах приложения (предпочтительно режим MDI).
Графический примитив |
Функция |
Прямые линии |
LineTo(). |
Ломаная линия |
Polyline(), PolylineTo() |
Вывод линейных сегментов и кривых Безье |
PolyDraw() |
Дуга эллипса |
Arc(), ArcTo(), |
Прямоугольники |
Rectangle(), RoundRect(). |
Многоугольники |
Polygon() |
Эллипс |
Ellipse() |
Окружность |
Circle(). |
Сегмент эллипса |
Chord(). |
Сектор эллипса |
Pie(). |
Работа с пикселами |
SetPixel(), GetPixel() |
В программе при отображении фигур должно быть реализована возможность изменения атрибутов.
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
Установка характеристик пера и кисти для рисования примитивов.
В программе должна быть предусмотрена возможность настройки пера (выбор одного из примитивов пера, либо среди дополнительных), настроек кисти, стиля заливки, режим фона и рисования.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.