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

Графика windows. Основы управления выводом графической и текстовой информации на базе библиотеки gdi. C++

Категория:

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

Дисциплина:

Системное программирование

Город:

Беларусь, Минск

Учебное заведение:

БНТУ, ФИТР

Тег:

#Системное_программирование

Стоимость работы:

18 руб.

Оценка: 9
Объем страниц: 7
Год сдачи: 2022
Дата публикации: 14.06.2022

* Кроме файла с работой, также есть архив с дополнительными файлами.

Описание дополнительных файлов:

Папки LW-8 и LW-8.1— содержат исходный код программы на языке C++

Фрагменты для ознакомления

Лабораторная работа № 8

ГРАФИКА WINDOWS. ОСНОВЫ УПРАВЛЕНИЯ ВЫВОДОМ ГРАФИЧЕСКОЙ И ТЕКСТОВОЙ ИНФОРМАЦИИ НА БАЗЕ БИБЛИОТЕКИ GDI

Вариант 06

 

Цель работы: изучить основы управления выводом текстовой и графической информации на базе библиотеки GDI.

Изучаемые вопросы:

1. Графическое устройство и его контекст. 

2. Атрибуты системы координат, их влияние на вывод информации. 

3. Шрифты, классификация, параметры шрифта, установка в контекст устройства. 

4. Атрибуты контекста устройства, влияющие на вывод текста. 

5. Методы GDI для вывода текста и векторной графики.

 

Постановка задачи:

1.  Нарисовать геометрическую фигуру в заданной области. 

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

ГРАФИКА WINDOWS. ОСНОВЫ УПРАВЛЕНИЯ ВЫВОДОМ ГРАФИЧЕСКОЙ И ТЕКСТОВОЙ ИНФОРМАЦИИ НА БАЗЕ БИБЛИОТЕКИ GDI
Рис 1. – Индивидуальное задание

 

4.1. Графическое устройство и его контекст

В программе для получения контекста устройства используются функции BeginPaint() и GetDC(). Первая функция применяется лишь в обработчике сообщения WM_PAINT, вторая же не имеет данного ограничения. Использование функций:

case WM_PAINT:
        {                    
// готовим окно к окрашиванию, и заполняет структуру PAINTSTRUCT
           hdc = BeginPaint(hWnd, &ps);       
            EndPaint(hWnd, &ps);  // конец окрашивания в заданном окне
    }

. . . . . .

       case WM_LBUTTONDOWN:
             {
                    hdc = GetDC(hWnd);
                    ReleaseDC(hWnd, hdc);
       		}

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

 

4.2 Атрибуты системы координат, их влияние на вывод информации.

По заданию требовалось установить определённый режим отображения устройства – MM_ANISOTROPIC. Для установки данного режима использовалась функция SetMapMode():

SetMapMode(hdc, MM_ANISOTROPIC);

4.3 Шрифты, классификация, параметры шрифта, установка в контекст устройства.

4.4 Атрибуты контекста устройства, влияющие на вывод текста

4.5 Методы GDI для вывода текста и векторной графики.

Расчётная схема:

Архимедова Спираль
Рис. 2 – Архимедова Спираль

Архимедова спираль (рис.1) описывается полярным уравнением r=a*K, где a − параметр, определяющий плотность витков спирали. Шаг спирали (расстояние между соседними витками) является для спирали Архимеда постоянной величиной, равной 2πa. 

Переход от полярных координат (r, K) к прямоугольным декартовым координатам (x,y) производится по формулам:

r = ro * K;

x=r*cosK,

y=r*sinK.

r – длина радиуса;

ro – начальный радиус (фиксированное число);

K – угол

С возрастанием угла K радиус также будет увеличиваться.

Xo, Yo – центр оси Ox, Oy;

sx, sy – высота и ширина клиентской области

 

Описание алгоритма работы программы:

Рисование фигуры:

  1. Центром начала координат была принят середина клиентской области окна.
  2. Установлены направления осей: ось X вправо, ось Y вверх.
  3. Фигура рисуется по формуле:

R = Ro * degBegin*M_PI / 180;

Вывод символа:

Вывод символов начинается с центра оси Ox, Oy точка (0, 0)

Перед выводом символа делается проверка условия:

1. На наличие необходимого отступа;

2. И определение возрастания или убывания функции.

И если условия выполняются, рассчитывается угол наклона символа, выводится символ и запоминается его позиция. Угол наклона рассчитывается по формуле:

Для k*sin(k) > 0

Схема алгоритма:

Схема алгоритма
Схема алгоритма

На рисунке 3 представлен результат работы программы:

ГРАФИКА WINDOWS. ОСНОВЫ УПРАВЛЕНИЯ ВЫВОДОМ ГРАФИЧЕСКОЙ И ТЕКСТОВОЙ ИНФОРМАЦИИ НА БАЗЕ БИБЛИОТЕКИ GDI
Рис. 3 – Результат работы
53