Файл: C Стандартные библиотечные функции работы с графикой.rtf
Добавлен: 11.01.2024
Просмотров: 183
Скачиваний: 2
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
СОДЕРЖАНИЕ
1. Анализ графического модуля “graphics.h”
1.2 Анализ констант, типов и глобальных переменных модуля
2. Реализация пользовательской библиотеки “mouse.h”
Список используемой литературы
1. Анализ графического модуля “graphics.h”
1.2 Анализ констант, типов и глобальных переменных модуля
fillsettingstype - Используется функцией getfillsettings для получения текущих настроек заливки.
struct fillsettingstype
{
int pattern; /* current fill pattern */
int color; /* current fill color */
}
font_names - Имена для BGI шрифтов( см. таблицу 2).
Таблица 2.
Название | Значение | Результат |
DEFAULT_FONT | 0 | 8x8 растровый шрифт |
TRIPLEX_FONT | 1 | Штриховой тройной шрифт |
SMALL_FONT | 2 | Штриховой маленький шрифт |
SANS_SERIF_FONT | 3 | Штриховой "гротесковый” шрифт |
GOTHIC_FONT | 4 | Штриховой готический шрифт |
Используется функцией settextstyle().
graphics_drivers - Константа, определяющая BGI графические драйверы( см. таблицу 3).
Таблица 3.
Константа | Значение |
DETECT | 0 (авто определение) |
CGA | 1 |
Таблица 3. продолжение. | |
MCGA | 2 |
EGA | 3 |
EGA64 | 4 |
EGAMONO | 5 |
IBM8514 | 6 |
HERCMONO | 7 |
ATT400 | 8 |
VGA | 9 |
PC3270 | 10 |
Используется функцией initgraph().
graphics_errors - Константа, соответствующая коду ошибки, возвращённому функцией
graphresult()( см. таблицу 4).
Таблица 4.
Код ошибки | Константа graphics_errors | Соответствующее сообщение об ошибке |
0 | grOk | Нет ошибок |
-1 | grNoInitGraph | (BGI) графика не установлена (использовать initgraph) |
-2 | grNotDetected | Графические аппаратные средства не обнаружены |
-3 | grFileNotFound | Файл драйвера не найден |
-4 | grInvalidDriver | Недействительный файл драйвера |
-5 | grNoLoadMem | Недостаточно памяти чтобы загрузить драйвер |
-6 | grNoScanMem | Недостаточно памяти в просмотре заливки |
-7 | grNoFloodMem | Недостаточно памяти для заливки |
-8 | grFontNotFound | Файл шрифта не найден |
-9 | grNoFontMem | Недостаточно памяти для загрузки шрифта |
-10 | grInvalidMode | Недопустимый графический режим для выбранного драйвера |
-11 | grError | Графическая ошибка |
-12 | grIOerror | Графическая ошибка ввода/вывода |
-13 | grInvalidFont | Недопустимый файл шрифта |
-14 | grInvalidFontNum | Недопустимый номер шрифта |
-15 | grInvalidDeviceNum | Недопустимый номер устройства |
-18 | grInvalidVersion | Недопустимый номер версии |
graphics_modes - Константы графических режимов для каждого BGI драйвера( см. таблицу 5).
Таблица 5.
Графический драйвер | Графические режимы (graphics_modes) | Значение | Разрешение | Палитра | Страницы |
CGA | CGAC0 CGAC1 CGAC2 CGAC3 CGAHI | 0 1 2 3 4 | 320 x 200 320 x 200 320 x 200 320 x 200 640 x 200 | C0 C1 C2 C3 2color | 1 1 1 1 1 |
MCGA | MCGAC0 MCGAC0 MCGAC0 MCGAC0 MCGAMED MCGAHI | 0 1 2 3 4 5 | 320 x 200 320 x 200 320 x 200 320 x 200 640 x 200 640 x 480 | C0 C1 C2 C3 2color 2color | 1 1 1 1 1 1 |
EGA | EGALO EGAHI | 0 1 | 640 x 200 640 x 350 | 16color 16color | 4 2 |
EGA64 | EGA64LO EGA64HI | 0 1 | 640 x 200 640 x 350 | 16color 4color | 1 1 |
EGA-MONO | EGAMONOHI EGAMONOHI | 0 1 | 640 x 350 640 x 350 | 2color 2color | 1* 2** |
HERC | HERCMONOHI | 0 | 720 x 348 | 2color | 2 |
ATT400 | ATT400C0 ATT400C1 ATT400C2 ATT400C3 ATT400MED ATT400HI | 0 1 2 3 4 5 | 320 x 200 320 x 200 320 x 200 320 x 200 640 x 200 640 x 400 | C0 C1 C2 C3 2color 2color | 1 1 1 1 1 1 |
VGA | VGALO VGAMED VGAHI | 0 1 2 | 640 x 200 640 x 350 640 x 480 | 16color 16color 16color | 2 2 1 |
PC3270 | PC3270HI | 0 | 720 x 350 | 2color | 1 |
IBM8514 | IBM8514HI IBM8514LO | 1 0 | 1024x 760 640 x 480 | 256color 256color | |
* - 64k на EGAMONO плате
** - 256k на EGAMONO плате
Данные параметры используются функциями detectgraph(), initgraph() и константами graphics_drivers.
HORIZ_DIR - Данный параметр устанавливает направление графического вывода шрифта (Имя параметра: HORIZ_DIR; Значение: 0; Направление: Слева на право). Данный параметр используется функциями gettextsettings(), settextstyle(), setusercharsize().
line_styles - Константы стилей линий для функций getlinesettings() и setlinestyle()( см. таблицу 6).
Таблица 6.
Константа | Значение | Результат |
SOLID_LINE | 0 | Сплошная линия |
DOTTED_LINE | 1 | Пунктир |
CENTER_LINE | 2 | Центрированная линия |
DASHED_LINE | 3 | Пунктирная линия |
USERBIT_LINE | 4 | Определяется пользователем |
line_widths - Константа ширины линий для функций getlinesettings() и setlinestyle()( см. таблицу 7).
Таблица 7.
Константа | Значение | Результат |
NORM_WIDTH | 1 | Ширина в 1-н пиксель |
THICK_WIDTH | 3 | Ширина в 3-и пикселя |
linesettingstype - Используется функциями getlinesettings() и setlinestyle() для корректировки рисования линий.
struct linesettingstype
{
int linestyle;
int upattern;
int thickness;
}
Таблица 8. Описание переменных структуры linesettingstype.
Элемент | Описание |
upattern | Установленный пользователем битовый образец используется когда стиль линии стоит как USERBIT_LINE. |
linestyle | Определяет в каком виде будут выводится следующие линии( сплошной, пунктирный, центрированный). |
thickness | Определяет будет ли толщина следующих линий обычной или толстой. |
upattern - 16-и разрядный образец, который применяется только если стиль линии определён как USERBIT_LINE. В этом случае, когда бит в образце слова единица, соответствующая точка в линии рисуется установленным цветом.
Например, сплошная линия соответствует upattern равному 0xFFFF(т.е. рисуются все пиксели), в то время как пунктирная линия может быть если upattern равно 0x3333 или 0x0F0F или 0x3F3F( см. таблицу 9).
Таблица 9.
16-и битный образец | upattern |
..xx..xx..xx..xx ....xxxx....xxxx ..xxxxxx..xxxxxx xxxxxxxxxxxxxxxx | 0x3333(штрих пунктир) 0x0F0F(длинный штрих пунктир) 0x3F3F(более длинный штрих пунктир) 0xFFFF(сплошная линия) |
MAXCOLORS - Определяет максимальное число цветов для массива полей в palettetype. Используется функцией setallpalette().
palettetype - Содержит информацию о палитре для текущего графического драйвера при запросах с использованием функций getpalette(), setpalette(), setallpalette().
struct palettetype
{
unsigned char size;
signed char colors[MAXCOLORS+1];
}
Таблица 10. Описание элементов структуры palettetype.
Элемент | Описание |
Size | Даёт номер цветов в палитре для текущего графического драйвера в текущем режиме. |
colors | Массив байтов, содержащий необработанный номер цвета для каждого входа в палитру. Если элемент цветов -1, то палитра для данного входа не определена. |
pointtype - Содержит координаты точки.
struct pointtype
{
int x;
int y;
}
putimage_ops - Параметры для функции putimage()( см. таблицу 11).
Таблица 11.
Константа | Значение | Описание |
COPY_PUT | 0 | Битовый рисунок источника копируется на экран. |
XOR_PUT | 1 | Исключающее ИЛИ. Отображает на экране исходное изображение. |
OR_PUT | 2 | ИЛИ. Отображает на экране текущее изображение, не убирая предыдущего выведенного этого же изображения. |
AND_PUT | 3 | Выводит на экран картинку поверх остальных объектов. |
NOT_PUT | 4 | Копирует и вставляет инверсированный источник. |