- •5. Содержание
- •6. Технические требования
- •Санкт-Петербургский государственный электротехнический университет
- •(СПбГэту “лэти”)
- •Календарный план выполнения выпускной квалификационной работы
- •Реферат
- •Содержание
- •Определения, обозначения и сокращения
- •Введение
- •Обзор методов и средств разработки графических приложений для ос багрос-4000
- •БагрОс-4000 как операционная система реального времени
- •Средства разработки графического по для БагрОс-4000
- •Отрисовка кадра с помощью OpenGl
- •Спецификация OpenGl sc 1.0.1
- •Особенности работы с графикой в ос БагрОс-4000
- •Последовательный способ отрисовки
- •Единовременная отрисовка
- •Реализация и тестирование методов отрисовки
- •Реализация метода последовательной отрисовки
- •Реализация метода единовременной отрисовки
- •Тестирование методов отрисовки
- •Состав библиотеки графических примитивов
- •Управляющие функции
- •Функции отрисовки примитивов
- •Функции работы с маскированием
- •Математические функции
- •Порядок работы с библиотекой
- •Пример прикладной программы
- •Разработка и стандартизация программных средств
- •Разработка плана проекта
- •Расчёт цены проекта
- •Расчёт себестоимости проекта
- •Расчёт цены предлагаемого продукта
- •Определение кода разрабатываемого программного изделия
- •Заключение
- •Список использованных источников
- •Приложение а Фрагменты исходного кода библиотеки
Порядок работы с библиотекой
В соответствии с пожеланиями заказчика данная библиотека поставлена в виде исходного кода на языке Си, разбитого на 3 файла:
Заголовочный файл lib.h – через него осуществляется подключение библиотеки к проекту прикладной программы;
Файл lib.c – непосредственно файл с кодом реализации библиотечных и вспомогательных функций;
Заголовочный файл InitValues.h – включается в проект через файл lib.c. Является настроечным файлом библиотеки, в котором задаются размеры буферов, значения по умолчанию для различных параметров и массивы значений для цветов, шаблонов линий, шрифтов.
При написании прикладной программы с использованием библиотеки необходимо придерживаться следующих правил:
Вызовы всех функций (за исключением математических) должны производиться в основном цикле работы графического приложения (цикле отрисовки);
В начале цикла отрисовки всегда должен быть вызов функции gfInit(int32 ww, int32 wh) с передачей в качестве аргументов ширины и высоты окна соответственно;
В конце цикла отрисовки необходим вызов функции gfEndDrawing() для корректного завершения отрисовки всех необходимых примитивов;
Внутри библиотеки не предусмотрена передача функциям в качестве аргументов некорректных данных, из чего следует необходимость повышенного внимания к корректности отправляемых данных.
Пример прикладной программы
В качестве примера прикладной программы, написанной с помощью данной библиотеки, можно привести следующий код, представленный в листинге 4.1.
gfInit(ww, wh); //Инициализация библиотеки и сброс значений
gfCirclePred(30); //Окружность должна отрисовываться 30-ю
отрезками
gfEnable(GF_FILLING); //Включение заливки примитивов
gfEnable(GF_EDGING_POLYGON); //Включение обводки полигонов
gfEdgingWidth(4); //Установка толщины обводки в 5 пикселей
gfEdgingColor(2); //Установка цвета обводки значением
элемента
с индексом 2 из массива цветов в настроечном файле
gfColor(1); //Установка цвета примитивов значением элемента с
индексом 2 из массива цветов в настроечном файле
gfSetAbsoluteOffset(-ww / 2, 0); //Установка начала координат
в центр левой границы экрана
int i;
for (i = 0; i < 7; ++i) {
gfPolygonFan(cab, 6); //Отрисовка кузова машинки
gfCircle(35, 0, 30); //Отрисовка заднего колеса
gfCircle(135, 0, 30); //Отрисовка переднего колеса
gfSetRelativeOffset(200, 0); //Сдвиг начала координат на
200 пикселей вправо
gfSetAbsoluteAngle(i * 3); //Установка углового смещения
относительно начала координат
}
gfEndDrawing(); //Окончание цикла отрисовки
Листинг 4.1 – Пример кода из прикладной программы
При добавлении вышеприведённого кода в цикл отрисовки любого оконного менеджера, использующего OpenGL-контекст, и подключении к проекту разработанной библиотеки, можно будет наблюдать в окне вывода картинку, приведённую на рисунке 4.1.
Рисунок 4.1 – Пример прикладной программы
Безусловно, для именно такого поведения нужно задать соответствующие цвета в настроечном файле InitValues.h и соответствующие значения массива вершин «cab».