Файл: C Стандартные библиотечные функции работы с графикой.rtf
Добавлен: 11.01.2024
Просмотров: 592
Скачиваний: 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.
Используется функцией settextstyle().graphics_drivers - Константа, определяющая BGI графические драйверы( см. таблицу 3).Таблица 3.
Используется функцией initgraph().graphics_errors - Константа, соответствующая коду ошибки, возвращённому функцией
graphresult()( см. таблицу 4).Таблица 4.
graphics_modes - Константы графических режимов для каждого BGI драйвера( см. таблицу 5).Таблица 5.
* - 64k на EGAMONO плате** - 256k на EGAMONO платеДанные параметры используются функциями detectgraph(), initgraph() и константами graphics_drivers.HORIZ_DIR - Данный параметр устанавливает направление графического вывода шрифта (Имя параметра: HORIZ_DIR; Значение: 0; Направление: Слева на право). Данный параметр используется функциями gettextsettings(), settextstyle(), setusercharsize().line_styles - Константы стилей линий для функций getlinesettings() и setlinestyle()( см. таблицу 6).Таблица 6.
line_widths - Константа ширины линий для функций getlinesettings() и setlinestyle()( см. таблицу 7).Таблица 7.
linesettingstype - Используется функциями getlinesettings() и setlinestyle() для корректировки рисования линий.struct linesettingstype{int linestyle;int upattern;intthickness;}Таблица 8. Описание переменных структуры linesettingstype.
upattern - 16-и разрядный образец, который применяется только если стиль линии определён как USERBIT_LINE. В этом случае, когда бит в образце слова единица, соответствующая точка в линии рисуется установленным цветом.Например, сплошная линия соответствует upattern равному 0xFFFF(т.е. рисуются все пиксели), в то время как пунктирная линия может быть если upattern равно 0x3333 или 0x0F0F или 0x3F3F( см. таблицу 9).Таблица 9.
MAXCOLORS - Определяет максимальное число цветов для массива полей в palettetype. Используется функцией setallpalette().palettetype - Содержит информацию о палитре для текущего графического драйвера при запросах с использованием функций getpalette(), setpalette(), setallpalette().struct palettetype{unsigned char size;signed char colors[MAXCOLORS+1];}Таблица 10. Описание элементов структуры palettetype.
pointtype - Содержит координаты точки.structpointtype{intx;inty;}putimage_ops - Параметры для функции putimage()( см. таблицу 11).Таблица 11.
| Название | Значение | Результат |
| DEFAULT_FONT | 0 | 8x8 растровый шрифт |
| TRIPLEX_FONT | 1 | Штриховой тройной шрифт |
| SMALL_FONT | 2 | Штриховой маленький шрифт |
| SANS_SERIF_FONT | 3 | Штриховой "гротесковый” шрифт |
| GOTHIC_FONT | 4 | Штриховой готический шрифт |
| Константа | Значение |
| DETECT | 0 (авто определение) |
| CGA | 1 |
| Таблица 3. продолжение. | |
| MCGA | 2 |
| EGA | 3 |
| EGA64 | 4 |
| EGAMONO | 5 |
| IBM8514 | 6 |
| HERCMONO | 7 |
| ATT400 | 8 |
| VGA | 9 |
| PC3270 | 10 |
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 | Определяется пользователем |
| Константа | Значение | Результат |
| NORM_WIDTH | 1 | Ширина в 1-н пиксель |
| THICK_WIDTH | 3 | Ширина в 3-и пикселя |
| Элемент | Описание |
| 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(сплошная линия) |
| Элемент | Описание |
| Size | Даёт номер цветов в палитре для текущего графического драйвера в текущем режиме. |
| colors | Массив байтов, содержащий необработанный номер цвета для каждого входа в палитру. Если элемент цветов -1, то палитра для данного входа не определена. |
| Константа | Значение | Описание |
| COPY_PUT | 0 | Битовый рисунок источника копируется на экран. |
| XOR_PUT | 1 | Исключающее ИЛИ. Отображает на экране исходное изображение. |
| OR_PUT | 2 | ИЛИ. Отображает на экране текущее изображение, не убирая предыдущего выведенного этого же изображения. |
| AND_PUT | 3 | Выводит на экран картинку поверх остальных объектов. |
| NOT_PUT | 4 | Копирует и вставляет инверсированный источник. |