Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

C_Kurs_Lekt / C_III_семестр / 17_bgi_graph_fun

.pdf
Скачиваний:
11
Добавлен:
13.02.2016
Размер:
120.35 Кб
Скачать

BGI графика. Функции

BGI ГРАФИКА. ФУНКЦИИ

Графические возможности Borland С (BGI графика).

Borland С существует ряд функций (более пятидесяти), которые обеспечивают достаточно полное управление графическими режимами различными адаптерами дисплеев: CGA, EGA, VGA, MCGA, Hercules, PC3270, AT&T6300 и IBM8514. (файл с прототипами #include <graphics.h>)

Для работы с этими функциями необходимо наличие соответствующих файлов-драйверов (файлы с расширением .BGI) для каждого вида адаптера и файлов шрифтов ((файлы с расширением CHR).

Файл BGI – это графический интерфейс (Borland Graphic Interface), обеспечивающий взаимодействие программ с графическими устройствами.

Перед работой программы в графических режимах вызывается функция initgraph, которая определяет тип адаптера и загружает в память соответствующий BGI-драйвер. Функция closergaph выгружает графический драйвер из памяти и восстанавливает текстовый режим.

Для работы будем использовать следующие драйверы: CGA.BGI – драйвер для CGA, MCGA;

EGAVGA.BGI – драйвер для EGA, VGA;

IBM8514.BGI - драйвер для IBM8514 (driver = 6, mode= 0 | 1).

Инициализация

void far initgraph(int far *graphdriver, int far *graphmode, char far *pathtodriver);

initgraph инициализирует графическую систему посредством загрузки с диска графического драйвера (или подтверждения работоспособности заре гистрированного драйвера) и перевода системы в графический режим.

initgraph(&gdriver, &gmode, "");

errorcode = graphresult(); /* контроль на наличие ошибок */ if (errorcode != grOk)

{

printf("Ошибка графики: %s\n", grapherrormsg(errorcode)); printf("Нажмите любую клавишу для останова:");

getch();

exit(1);

}

void far detectgraph(int far *graphdriver, int far *graphmode); detectgraph определяет графический адаптер вашей системы и

выбирает режим, обеспечивающий максимальное разрешение для этого адаптера. Если графическое оборудование не будет найдено, параметру *graphdriver будет присвоено значение grNotDetected (-2), и graphresult также вернет grNotDetected (-2).

void far closegraph(void);

closegraph освобождает всю память, выделенную для графической системы, и возвращает экран в режим, в котором он был перед вызовом

Нижний колонтитул

1

Нижний колонтитул справа

BGI графика. Функции

функции initgraph. (Освобождение памяти от элементов графической системы, таких как драйверы, шрифты и внутренние буферы, осуществляется через вызов _graphfreemem.)

Управление графическими режимами и их анализ:

detectgraph, initgraph, closegraph, graphdefaults, cleardevice, installuserdriver, registrbgidriver, restorecrtmode, setgraphmode, setwritemode, getgraphmode, getmoderange, getmaxmode, getmodename, getdrivername, graphresult, grapherrormsg

Рисование графических примитивов и фигур:

а) Управление текущим указателем: moveto, moverel, getmaxx, getmaxy, getx,gety.

б) Рисование: line, lineto, linerel, arc, getarccoords, circle, ellipse, rectangle, drawpoly.

в) Стиль линий и коэффициент сжатия изображения: setlinestyle, getlinestyle, setaspectratio, getaspectratio.

Управление цветами и шаблонами заполнения (заливками):

setcolor, getcolor, setbkcolor, getbkcolor, getmaxcolor, getpalette, getpalettesize, getdefaultpalette, setpallete, setallpallete, setrgbpalette, setfillstyle, setfillpattern, getfillpattern, getfillsetting, setgraphbufsize, fillpoly, fillelipse, sector, floodfill, pieslice, bar, bar3d.

Битовые операции:

putpixel, getpixel, imagesize, getimage, putimage.

Управление страницами: setactivepage, setvisualpage.

Графические окна: setviewport, setviewsetting, clearviewport

Управление выводом текста:

registerbgifont, installuserfont, outtext, outtextxy, settextstyle, settextjustify, setusercharsize, gettexsetting, textheight, textwidth)

Константы графических драйверов

-----------------------------------------------

Константа graphics_drivers

Числовое значение

-----------------------------------------------

DETECT

0

(требование автоопределения)

CGA

1

 

MCGA

2

 

EGA

3

 

EGA64

4

 

EGAMONO

5

 

IBM8514

6

 

VGA

9

 

-----------------------------------------------

Нижний колонтитул

2

Нижний колонтитул справа

BGI графика. Функции

Графические режимы

-----------------------------------------------------------------

графический

graphics_modes Значение Колонок

Палитра Количество

драйвер

 

 

X строк

 

страниц

-----------------------------------------------------------------

CGA

CGAC0

0

320

X 200

C0

 

1

 

CGAC1

1

320

X 200

C1

 

1

 

CGAC2

2

320

X 200

C2

 

1

 

CGAC3

3

320

X 200

C3

ЦВЕТА

1

 

CGAHI

4

640

X 200

2

1

EGA

EGALO

0

640

X 200

16

ЦВЕТОВ

4

 

EGAHI

1

640

X 350

16

ЦВЕТОВ

2

EGA64

EGA64LO

0

640

X 200

16

ЦВЕТОВ

1

 

EGA64HI

1

640

X 350

4

ЦВЕТА

1

VGA

VGALO

 

0 640

X 200

16

ЦВЕТОВ

2

 

VGAMED

 

1 640

X 350

16

ЦВЕТОВ

2

 

VGAHI

 

2 640

X 480

16

ЦВЕТОВ

1

IBM8514

IBM8514HI

1

1024 X 768

256 ЦВЕТОВ

 

 

IBM8514LO

0

640

X 480

256 ЦВЕТОВ

 

-----------------------------------------------------------------

Возвращаемое

initgraph всегда

устанавливает внутренний код

значение

ошибки; причем в

 

случае

успешного завершения

 

данный код устанавливается в 0. В случае ошибки

 

*graphdriver устанавливается в -2, -3, -4

или

 

-5, а graphresult такие же значение, как предс-

 

тавлено ниже:

 

 

 

 

 

 

grNotDetected

-2

Не может определить тип

 

 

grFileNotFound

-3

графической платы

 

 

Не может найти файл драйвера

 

grInvalidDriver -4

Неправильный драйвер

не

 

grNoLoadMem

-5

Для загрузки

драйвера

 

 

 

хватает памяти

 

-----------------------------------------------------------

Константа, присваиваемая номеру цвета (значение

Номер

1

пиксела)

палитры

2

3

0

-----------------------------------------------------------

CGA_LIGHTGREEN

CGA_LIGHTRED

CGA_YELLOW

1

(СВЕТЛОЗЕЛЕНЫЙ)

(РОЗОВЫЙ)

(ЖЕЛТЫЙ)

CGA_LIGHTCYAN

CGA_LIGHTMAGENTA

CGA_WHITE

2

(СВЕТЛОСИНИЙ)

(СВЕТЛОМАЛИНОВЫЙ)

(БЕЛЫЙ)

CGA_GREEN

CGA_RED

CGA_BROWN

3

(ЗЕЛЕНЫЙ)

(КРАСНЫЙ)

(КОРИЧНЕВЫЙ)

CGA_CYAN

CGA_MAGENTA

CGA_LIGHTGREY

 

(СИНИЙ)

(МАЛИНОВЫЙ)

(СВЕТЛОСЕРЫЙ)

-----------------------------------------------------------

Нижний колонтитул

3

Нижний колонтитул справа

BGI графика. Функции

--------------------------------------------------------

Числовое

Символьное имя

значение

 

--------------------------------------------------------

0

BLACK

(ЧЕРНЫЙ)

1

BLUE

(ГОЛУБОЙ)

2

GREEN

(ЗЕЛЕНЫЙ)

3

CYAN

(СИНИЙ)

4

RED

(КРАСНЫЙ)

5

MAGENTA

 

(МАЛИНОВЫЙ)

6

BROWN

(КОРИЧНЕВЫЙ)

7

LIGHTGREY

(СВЕТЛОСЕРЫЙ)

8

DARKGREY

 

(ТЕМНОСЕРЫЙ)

9

LIGHTBLUE

(СВЕТЛОГОЛУБОЙ)

10

LIGHTGREEN

(СВЕТЛОЗЕЛЕНЫЙ)

11

LIGHTCYAN

(СВЕТЛОСИНИЙ)

12

LIGHTRED

 

(РОЗОВЫЙ)

13

LIGHTMAGENTA

(СВЕТЛОМАЛИНОВЫЙ)

14YELLOW (ЖЕЛТЫЙ)

15WHITE (БЕЛЫЙ)

--------------------------------------------------------

EGA_ COLORS (graphics

mode)

 

 

_____________________________

 

 

CONSTANT

 

¦VALUE¦ CONSTANT

¦VALUE

---------------EGA_BLACK

+-----

0

+

------------------EGA _ DARKGRAY

+-----

 

¦

¦

¦ 56

 

EGA_BLUE

¦

1

¦

EGA _ LIGHTBLUE

¦ 57

 

EGA_GREEN

¦

2

¦

EGA _ LIGHTGREEN

¦ 58

 

EGA_CYAN

¦

3

¦

EGA _ LIGHTCYAN

¦ 59

 

EGA_RED

¦

4

¦

EGA _ LIGHTRED

¦ 60

 

EGA_MAGENTA

¦

5

¦

EGA _ LIGHTMAGENTA

¦ 61

 

EGA_LIGHTGRAY

¦

7

¦

EGA _ YELLOW

¦ 62

 

EGA_BROWN

¦ 20

¦

EGA _ WHITE

¦ 63

 

Нижний колонтитул

4

Нижний колонтитул справа

Соседние файлы в папке C_III_семестр