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

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. продолжение.

-4

grInvalidDriver

Недействительный файл драйвера

-5

grNoLoadMem

Недостаточно памяти чтобы загрузить драйвер

-6

grNoScanMem

Недостаточно памяти в просмотре заливки

-7

grNoFloodMem

Недостаточно памяти для заливки

-8

grFontNotFound

Файл шрифта не найден

-9

grNoFontMem

Недостаточно памяти для загрузки шрифта

-10

grInvalidMode

Недопустимый графический режим для выбранного драйвера

-11

grError

Графическая ошибка

-12

grIOerror

Графическая ошибка ввода/вывода

-13

grInvalidFont

Недопустимый файл шрифта

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

-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

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

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.

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

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

ИЛИ. Отображает на экране текущее изображение, не убирая предыдущего выведенного этого же изображения.

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

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;

}