Новости

Модуль Graph

Работа добавлена:






Модуль Graph на http://mirrorref.ru

Балтийский государственный технический университет «ВОЕНМЕХ» им. Д. Ф. Устинова

Кафедра информационных систем и технологий

Курсовая работа по программированию

Тема: «ООП»

Преподаватель: Козлов В. Р.

Выполнил: Суходоев П. Ю.

Группа: И-351

Санкт-Петербург

2006 год.

Тема реферата.

Модуль Graph

Модуль Graph представляет собой мощную библиотеку графических подпрограмм универсального назначения, рассчитанную на работу с наиболее распространенными графическими адаптерами IBM-совместимых ПК. Подпрограммы модуля Graph обеспечивают различные режимы работы многорежимных адаптеров, полностью используют их цветовые возможности и разрешающую способность.

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

Графические драйверы поддерживают следующие графические адаптеры (и полностью совместимые с ними):

CGA

Hercules

MCGA

AT&T 400

EGA

3270 PC

VGA

IBM-8514

Для поддержки этих аппаратных средств используются следующие драйверы:

CGA.BGI

Драйвер для CGA, MCGA

EGAVGA.BGI

Драйвер для EGA, VGA

HERC . BGI

Драйвер для монохромного Hercules

ATT . BGI

Драйвер для AT&T 6300 (400 строк)

PC3270.BGI

Драйвер для IBM 3270 PC

IBM8514.BGI

Драйвер для IBM 8514

Во время выполнения программы процедура InitGraph автоматически распознает графический адаптер, установленный на ПК, загружает и инициализирует соответствующий графический драйвер, переводит адаптер в графический режим и возвращает управление вызывающей программе. Процедура CloseGraph выгружает драйвер из памяти и восстанавливает текстовый режим работы адаптера.

Подпрограммы модуля Graph позволяют адресоваться к любому элементу (пикселю) растрового графического экрана и управлять светимостью этого элемента. Для указания пикселя используется следующая система координат: верхний левый угол графического экрана имеет координаты 0,0; горизонтальная координата X увеличивается слева направо, вертикальная координата У увеличивается сверху вниз. Например, в режиме 640x480 (адаптер VGA) правый нижний угол экрана имеет координаты 639, 479, а центр экрана -координаты 319,239.

Некоторые графические подпрограммы используют понятие текущего указателя. Указатель содержит координаты того пикселя, начиная с которого будет строиться изображение подпрограммами LineTo, LineRel, OutText и др. В этом смысле указатель подобен текстовому курсору, но, в отличие от него, не имеет видимого изображения на экране.

Для вывода текстовых сообщений на графический экран модуль Graph предоставляет один матричный и 4 штриховых шрифтов. Каждый символ матричного шрифта на экране реализуется в виде матрицы из 8x8 пикселей. Штриховые шрифты для каждого символа определяют набор штрихов (векторов), с помощью которых на экране создается (вычерчивается) соответствующий символ. Штриховые шрифты позволяют изменять размеры текстовых надписей в широких пределах без существенного ухудшения качества изображения символов. Однако стандартные штриховые шрифты не содержат символы кириллицы.

В модуле Graph имеется несколько процедур для рисования элементарных графических фигур - точек, линий, окружностей, дуг и т.п. При необходимости замкнутые фигуры могут быть закрашены различными цветами и стилями (образцами закраски).

Процедура SetViewPort создает на экране графическое окно. Если окно определено, весь дальнейший графический вывод осуществляется относительно координат этого окна и отсекается его границами.

В модуле имеются средства сохранения и выдачи изображений, работы с несколькими графическими страницами, установки необходимых цветов.

Константы

Константы задания драйверов и режимов работы

const

 

 

 

Detect =

0;

 

 

CGA =

1;

 

 

MCGA =

2;

 

 

EGA =

3;

 

 

EGA64 =

4;

 

 

EGAMono =

5;

 

 

IBM8514 =

6;

 

 

HercMono =

7;

 

 

ATT400 =

8;

 

 

VGA =

9;

 

 

PC3270 =

10;

 

 

CurrentDriver = -128 ;

{Передается в GetModeRange}

CGAC0 = 0;

{320x200;

палитра 0; 1

страница }

CGAC1 = 1;

{320x200;

палитра 1 ; 1

страница }

CGAC2 = 2;

{320x200;

палитра 2 ; 1

страница }

CGAC3 = 3;

{320x200;

палитра 3; 1

страница }

CGAHi = 4;

{640x200;

1 страница }

 

MCGAC0 = 0;

{320x200; палитра О; 1 страница}

MCGAC1 = 1;

{320x200; палитра 1; 1 страница}

MCGAC2 = 2;

{320x200; палитра 2; 1 страница}

MCGAC3 = 3;

{320x200; палитра 3; 1 страница}

MCGAMed = 4;

{640x200; 1 страница}

MCGAHi = 5;

{640x480; 1 страница}

EGALo = 0;

{640x200; 16 цветов; 4 страницы}

EGAHi = 1;

{640x350; 16 цветов; 2 страницы}

EGA64LO = 0;

{640x200; 16 цветов; 1 страница}

EGA64Hi = 1;

{640x350; 4 цвета; 1 страница}

EGAMonoHi= 3;

{640x350; 64К: 1 страница;256К:2 страницы}

HercMonoHi=0;

{720x348; 2 страницы}

ATT400CO = 0;

{320x200; палитра 0; 1 страница}

ATT400C1 = 1;

{320x200; палитра 1; 1 страница}

ATT400C2 = 2;

{320x200; палитра 2; 1 страница}

ATT400C3 = 3;

{320x200; палитра 3; 1 страница}

ATT400Med= 4;

{640x200; 1 страница}

ATT4QOHi = 5;

{640x400; 1 страница}

VGALo = 0;

{640x200; 16 цветов; 4 страницы}

VGAMed = 1;

{640x350; 16 цветов; 2 страницы}

VGAHi = 2;

{640x480; 16 цветов; 1 страница}

PC3270Hi = 0;

{720x350; 1 страница}

IBM8514LO= 0;

{640x480; 256 цветов}

IBM8514HI= 1;

{1024x768; 256 цветов}

Значения ошибок, возвращаемые GraphResult

const

grOk = 0;{Нет ошибок} 

grNoInitGraph = -1;{Графика не инициализирована} 

grNotDetected = -2;{Графическое устройство не обнаружено} 

grFileNotFound = -3;{Файл драйвера устройства не найден} 

grInvalidDriver= -4;{Неправильный файл драйвера устройства} 

grNoLoadMem = - 5;{Нет памяти для загрузки драйвера} 

grNoScanMem = - 6;{Нет памяти для просмотра областей}

grNoFloodMem = -7;{Нет памяти для закраски областей}

grFontNotFound = -8;{Файл шрифта не найден}

grNoFontMem = - 9;{Нет памяти для загрузки шрифта} 

grInvalidMode =-10;{Недопустимый графический режим} 

grError =-11;{Общая ошибка}

grIOerror =-12;{Ошибка графического ввода/вывода}

grInvalidFont =-13;{Неверный файл шрифта} 

grInvalidFontNum=-14;{Неверный номер шрифта}

Константы цвета

const

 

Black

= 0;{Черный}

Blue

= 1;{Синий}

Green

= 2;{Зеленый}

Cyan

= 3;{Голубой}

Red

= 4;{Красный}

Magenta

= 5;{Фиолетовый}

Brown

= 6;{Коричневый}

LightGray

= 7;{Светло-серый}

DarkGray

= 8;{Темно-серый}

LightBlue

= 9;{Ярко-синий}

LightGreen