- •5. Содержание
- •6. Технические требования
- •Санкт-Петербургский государственный электротехнический университет
- •(СПбГэту “лэти”)
- •Календарный план выполнения выпускной квалификационной работы
- •Реферат
- •Содержание
- •Определения, обозначения и сокращения
- •Введение
- •Обзор методов и средств разработки графических приложений для ос багрос-4000
- •БагрОс-4000 как операционная система реального времени
- •Средства разработки графического по для БагрОс-4000
- •Отрисовка кадра с помощью OpenGl
- •Спецификация OpenGl sc 1.0.1
- •Особенности работы с графикой в ос БагрОс-4000
- •Последовательный способ отрисовки
- •Единовременная отрисовка
- •Реализация и тестирование методов отрисовки
- •Реализация метода последовательной отрисовки
- •Реализация метода единовременной отрисовки
- •Тестирование методов отрисовки
- •Состав библиотеки графических примитивов
- •Управляющие функции
- •Функции отрисовки примитивов
- •Функции работы с маскированием
- •Математические функции
- •Порядок работы с библиотекой
- •Пример прикладной программы
- •Разработка и стандартизация программных средств
- •Разработка плана проекта
- •Расчёт цены проекта
- •Расчёт себестоимости проекта
- •Расчёт цены предлагаемого продукта
- •Определение кода разрабатываемого программного изделия
- •Заключение
- •Список использованных источников
- •Приложение а Фрагменты исходного кода библиотеки
Функции работы с маскированием
Функции работы с маскированием предназначены для создания и изменения масок, влияющих на отрисовку примитивов. Маски позволяют запретить рисование в необходимых областях экрана.
Функции работы с масками перечислены в таблице 3.3.
Таблица 3.3 – Функции работы с масками
Объявление функции |
Описание |
void gfPushTransform (int32 id) void gfPopTransform (int32 id) |
Помещение маски в стек масок либо удаление из него |
void gfSetClipLineParam (enum ClipSide side, int32 coord);
|
Задание координат секущей линии и отсекаемой части. ClipSideLeft – левая сторона ClipSideRight – правая сторона ClipSideTop – верхняя сторона ClipSideBottom – нижняя сторона |
void gfSetClipRectParam (int32 left, int32 bottom, int32 right, int32 top); |
Задание прямоугольной маски |
void gfGraphicMode (enum GRATHMODE mode) |
Установка режима прорисовки примитивов относительно маски GRAPHMODE_PAINT – прорисовка примитивов без учёта текущей маски GRAPHMODE_PAINT_MASK – прорисовка примитивов с учётом текущей маски GRAPHMODE_PAINT_INVERSMASK – прорисовка примитивов с учётом текущей маски, интерпретируя её инверсно GRAPHMODE_MAKE_NEW_MASK – формирование примитивами области маски, при этом предыдущая маска удаляется GRAPHMODE_MAKE_MASK – формирование примитивами области маски, при этом происходит дополнение текущей маски новыми областями GRAPHMODE_MAKE_SLICE – формирование примитивами области маски, при этом происходит удаление областей текущей маски |
Математические функции
Добавление математических функций обусловлено желанием заказчика.
Список добавленных математических функций представлен в таблице 3.4.
Таблица 3.4 – Математические функции
Объявление функции |
Описание |
float32 mfLn (float32 val) |
Натуральный логарифм |
float32 mfLg (float32 val) |
Десятичный логарифм |
float32 mfSin (float32 val) |
Синус на основе градусов |
float32 mfSinr (float32 val) |
Синус на основе радиан |
float32 mfSinh (float32 val); |
Синус гиперболический на основе градусов |
float32 mfSinhr (float32 val); |
Синус гиперболический на основе радиан |
float32 mfCos (float32 val); |
Косинус на основе градусов |
float32 mfCosr (float32 val); |
Косинус на основе радиан |
float32 mfCosh (float32 val); |
Косинус гиперболический на основе градусов |
float32 mfCoshr (float32 val); |
Косинус гиперболический на основе радиан |
float32 mfTg (float32 val); |
Тангенс на основе градусов |
float32 mfTgr (float32 val); |
Тангенс на основе радиан |
float32 mfTgh (float32 val); |
Тангенс гиперболический на основе градусов |
float32 mfTghr (float32 val); |
Тангенс гиперболический на основе радиан |
float32 mfArcsin (float32 val); |
Арксинус, результат в градусах |
float32 mfArccos (float32 val); |
Арккосинус, результат в градусах |
float32 mfArctg (float32 val); |
Арктангенс, результат в градусах |
float32 mfArcsinr (float32 val); |
Арксинус, результат в радианах |
float32 mfArccosr (float32 val); |
Арккосинус, результат в радианах |
float32 mfArctgr (float32 val); |
Арктангенс, результат в радианах |
float32 mfArctg2r (float32 y, float32 x); |
Арктангенс по двум сторонам, результат в радианах |
float32 mfSqrt (float32 val); |
Квадратный корень |
float32 mfExp (float32 val); |
Экспонента |
float32 mfCeil (float32 val); |
Округление вверх до целого |
float32 mfFloor (float32 val); |
Округление вниз до целого |
float32 mfPow (float32 val1, float32 val2); |
Возведение val1 в степень val2 |
float32 mfFabs(float32 val); |
Модуль вещественного числа |
int32 mfAbs(int32 val); |
Модуль целого числа |
float64 mfFmod(float64 val1, float64 val2); |
Большее значение |
void sfStrncpy(int8 *dst, int8 const *src, int32 count); void sfStrncpy(char_mb *dst, char_mb const *src, int32 count); void sfWcsncpy(char_un *dst, char_un const *src, int32 count); |
Функция используется для копирования count символов из строки src в строку dst Функции предназначены для различных кодировок символов |
int32 sfStrcmp(int8 const *str1, int8 const *str2); int32 sfStrcmp(char_mb const *str1, char_mb const *str2); int32 sfWcscmp(char_un const *str1, char_un const *str2); |
Функция сравнения строк, возвращает результат сравнения Функции предназначены для различных кодировок символов |
|
|
Продолжение таблицы 3.4 |
|
int8 *sfSnprintf(int8 *dst, int32 limit, int8 const *format, ... ); char_mb *sfSnprintf(char_mb *dst, int32 limit, char_mb const *format, ... ); char_un *sfSwprintf(char_un *dst, int32 limit, char_un const *format, ... ); |
Функция возвращает первый входной параметр, куда копируется limit символов в соответствии с заданным форматированием format Функции предназначены для различных кодировок символов |
int32 sfAtoi(int8 const *str); int32 sfAtoi(char_mb const *str); int32 sfWtoi(char_un const *str); |
Функция переводит строку в целое число Функции предназначены для различных кодировок символов |
uint32 sfAtoui(int8 const *str); uint32 sfAtoui(char_mb const *str); uint32 sfWtoui(char_un const *str); |
Функция переводит строку в целое беззнаковое число Функции предназначены для различных кодировок символов |
float32 sfAtof(int8 const *str); float32 sfAtof(char_mb const *str); float32 sfWtof(char_un const *str); |
Функция переводит строку в вещественное число Функции предназначены для различных кодировок символов |