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

3-я Лабораторная работа Вариант1 Вариант2 Вариант3 Вариант4 Вариант5 Вариант6 Вариант7 Вариант8 Тема:3. ГРАФИЧЕСКИЙ ИНТЕРФЕЙС ПОЛЬЗОВАТЕЛЯ (GRAPHICAL USER INTERFACE, GUI) 3.1. Цель работы Ознакомление с концепцией и элементами графического интерфейса пользователя (GUI),принципами формирования графики на растровом экране дисплея, получение практических навыков по составлению, написанию и отладке программ, осуществляющих графический вывод текста, точечной и векторной графики. 3.2.Указания по подготовке к выполнению лабораторной работы.Необходимо изучить концепцию графического интерфейса устройства (GDI), его структуру,основные типы функций и примитивов GDI, структуру информации о цветах, атрибутах, шрифтах контекста устройств, принципы их формирования и изменения. При подготовке к работе необходимо изучить конспект лекций по указанной теме, методические указания, а также разделы, указанные в [16, c.94-247], [17, c.19-32]. 3.3. Сущность работы: Для рисования в рабочей области вашего окна используйте функции графического интерфейса устройства GDI. Одна из основных задач GDI - поддержка аппаратно-независимой графики. Функции GDI позволяют манипулировать как с пиксельной, так и векторной графикой. В своей основе функции GDI могут быть разбиты на несколько крупных групп. Функции, которые получают(или создают) и освобождают (или уничтожают) указатели контекстов устройств. Данные функции подробно рассматривались в п.3 данных методических указаний. Функции, которые получают информацию о контекстах устройства (см. выше). Функции рисования. Наиболее часто используемые из них MoveTo (перемешение пера в новые координаты), LineTo (рисование линии), PolyLineTo (рисует ломаную линию по координатам точек), Rectangle (рисует прямоугольник), Ellipse (рисует эллипс), PolyBezier (рисует сплайны Безье), функции работы с полигонами CreateRectRgn,CreateEllipticRgn,CreatePolygonRgn, CombineRgn, FillRgn, FrameRgn,функции работы с битовыми образами CreateDIBitmap, SetDIBitmap,GetDIBits, CreateBitmap, SetBitmapBits, BitBit, StretchBit, PatBit. Функции, которые устанавливают и получают атрибуты контекста устройства, которые устанавливают различные особенности работы функций рисования. Например, SetTextColor, SetTextAlign. Функции, которые работают с объектами GDI. К ним относятся функции работы с перьями(CreatePen, CreatePenIndirect), фоном (SetBkColor,GetBkColor, CreateSolidBrush, CreateHatchBrush, CreateBrushIndirect), функции управления объектами: GetStockObject, Select Пользуясь данными функциями можно работать со следующими типами графических объектов (примитивами):Линии и кривые. GDI поддерживает прямые линии, прямоугольники, эллипсы, дуги, сплайны Безье. Закрашенные области. Если набор прямых и кривых линий ограничивает со всех сторон некоторую область, то она может быть закрашена с использованием объекта GDI (brush). Эта кисть может быть сплошной, штриховой или шаблонной. Битовые (растровые) образы - двумерные массивы битов, соответствующие пикселям устройства отображения.

Битовые образы используются для отображения картинок, курсоров мыши, иконок, кнопок панели инструментов и т.п.

Текст. Операционная система поддерживает множество функций работы с текстом, шрифтами.

Метафайлы - набор вызовов команд GDI, сохраненный в файловом виде. Используются для хранения и передачи векторной графики.

Регион - сложная область, состоящая из любых фигур.

Путь - набор отрезков и кривых. Могут использоваться для рисования,

закрашивания и при отсечении.

Отсечение - некоторая область, ограничивающая пространство для

графического вывода.

Палитра - набор цветов для рисования.

3.4. Задание на лабораторную работу Варианты:

Вариант 1.

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

Вариант 2.

Создать окно приложения в центре рабочего стола со следующими размерами:

ширина 600, высота 450 точек. В центре окна нарисовать закрашенный эллипс

со значениями диагоналей 250 и 100 точек. Вокруг эллипса описать пятиугольник, стороны которого в своей середине являются касательными к эллипсу. При изменении размеров окна, происходит пропорциональное изменение рисунка.

Вариант 3.

Используя сплайны Безье, нарисовать в клиентской области окна

приложения графики функций "синуса" и "косинуса". Каждый из графиков, а также оси координат должны быть разного цвета.

Вариант 4.

Написать программу рисования графика функции, определяемой пользователем.

Уравнение задается в виде функции, диапазон изменения аргумента задается

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

Вариант 5.

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

Вариант 6.

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

Вариант 7.

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

Вариант 8.

Используя пути, написать программу, рисующую замкнутую фигуру, заданную преподавателем, закрашенную заданным фоном и штриховкой.

Вариант 9.

Написать алгоритм закрашивания произвольной области экрана, ограниченной непрерывным контуром, заданным преподавателем. Начало закраски определяется произвольной точкой внутри контура. 3.5. Контрольные вопросы и задания Каково назначение графического интерфейса устройства интерфейса устройства (GDI)? Какие типы функций GDI Вы знаете? Какие примитивы GDI Вы знаете? Дайте характеристику метафайлам. Что такое ? Каким образом их использовать? Какие примитивы позволяют создавать функции API? Дайте определение понятия . Каким образом происходит создание, выбор и удаление перьев? Что определяет режим рисования? В чем особенность рисования полигонов? Системы координат устройства. Чем отличаются физические и логические координаты? Опишите процесс использования битовых образов.

Вариант1 Вариант2 Вариант3 Вариант4 Вариант5 Вариант6 Вариант7 Вариант8

Соседние файлы в папке Html