Главная страница

C Стандартные библиотечные функции работы с графикой


Скачать 137.97 Kb.
НазваниеC Стандартные библиотечные функции работы с графикой
Дата10.04.2023
Размер137.97 Kb.
Формат файлаrtf
Имя файлаfile_445107.rtf
ТипКурсовая
#1052069
страница2 из 3
1   2   3



1.2 Анализ констант, типов и глобальных переменных модуля



arccoordstype - Используется функцией getarccoords для получения параметров текущей области просмотра.

struct arccoordstype

{

int x, y; /* center points of arc */

int xstart, ystart; /* start position */

int xend, yend; /* end position */

}
CGA_COLORS - Данная константа определяет цветовую схему, доступную для функция BGI, выполняющихся на CGA мониторах. Определена в модуле GRAPHICS.H. Используется функциями setallpalette, setbkcolor, setcolor, setpalette.

COLORS - Данная символьная константа устанавливает атрибут цвета символов на EGA и CGA мониторах. Определена в модуле CONIO.H. Используется функциями (функции описаны в модуле CONIO.H) textattr, textbackground, textcolor.

EGA_COLORS - Данная константа определяет цветовую схему, доступную для функция BGI, выполняющихся на EGA мониторах. Определена в модуле GRAPHICS.H. Используется функциями setallpalette, setbkcolor, setcolor, setpalette.

fill_patterns - Образцы заливки применяемые функциями getfillsettings и setfillstyle( см. таблицу 1).
Таблица 1.

Название

Значение

Результат заполнения

EMPTY_FILL

0

Цвет фона

SOLID_FILL

1

Сплошная заливка

LINE_FILL

2

Заливка типа “---”

LTSLASH_FILL

3

Заливка типа “///”

SLASH_FILL

4

///” толстые линии

BKSLASH_FILL

5

\\\” толстые линии

LTBKSLASH_FILL

6

Заливка типа “\\\”

HATCH_FILL

7

Редкая штриховка

XHATCH_FILL

8

Сильная перекрестная

INTERLEAVE_FILL

9

Чередование строк”

WIDE_DOT_FILL

10

Заливка точками(широк)

Таблица 1. продолжение.

CLOSE_DOT_FILL

11

Заливка точками(узк)

USER_FILL

12

Определ. пользователем


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

Копирует и вставляет инверсированный источник.


text_just - Параметр горизонтального и вертикального выравнивания для функции settextjustify().
Таблица 12. Значения параметра text_just.

Аргумент

Константа

Значение

Результат

Horiz

LEFT_TEXT CENTER_TEXT RIGHT_TEXT

0 1 2

По левому краю По центру По правому краю

Vert

BOTTOM_TEXT CENTER_TEXT TOP_TEXT

0 1 2

По низу По центру По верху


text directions - Настройки текста. Содержит два параметра HORIZ_DIR и VERT_DIR.

textsettingstype - Используется для получения текущих настроек текста функцией gettextsettings().
struct textsettingstype

{

int font;

int direction;

int charsize;

int horiz;

int vert;

}
USER_CHAR_SIZE - Определённый пользователем размер символа. В таблице 13 указаны значения данного параметра, а так же размеры шрифтов, соответствующие заданному параметру.

Таблица 13.

Значение

Размер дисплея 8x8 растровых шрифтов

1

Символы дисплея в 8x8 экранных блоков

2

Символы дисплея в 16x16 экранных блоков

...

...

10

Символы дисплея в 80x80 экранных блоков


Используется функциями gettextsettings(), settextstyle(), setusercharsize() и параметром textsettingstype.

VERT_DIR - Данный параметр устанавливает направление графического вывода шрифта (Имя параметра: VERT_DIR; Значение: 1; Направление: Снизу в верх, поворачивает выводимый текст на 90 градусов против часовой стрелки). Данный параметр используется функциями gettextsettings(), settextstyle(), setusercharsize().

viewporttype - Используется для получения настроек области вывода функцией getviewsettings().
struct viewporttype

{

int left;

int top;

int right;

int bottom;

int clip;

}
1   2   3


написать администратору сайта