Функции для работы с терминалом в текстовом режиме

НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ

ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»

УТВЕРЖДАЮ

Директор ИК

_____________ М.К. Сонькин

«____»_____________2011 г.

Т.Е. Мамонова

Лабораторная работа № 12

Графика в C++

Методические указания по выполнению лабораторных работ

по курсу «Информатика»

для студентов направлений 220000 – «Мехатроника и робототехника»,

220700 – «Автоматизация технологических процессов и производств».

Издательство

Томского политехнического университета

УДК 519.6

ББК 00000

А00

Мамонова Т.Е.

А00 Графика в C++. Методические указания по выполнению лабораторных работ по курсу «Информатика» для студентов I курса, обучающихся по направлениям 220000 – «Мехатроника и робототехника», 220700 – «Автоматизация технологических процессов и производств» / Т.Е. Мамонова. – Томск: Изд-во Томского политехнического университета, 2011. –18 с.

УДК 519.6

ББК 00000

Методические указания рассмотрены и рекомендованы к изданию методическим семинаром кафедры интегрированных

компьютерных систем управления ИК

«1» сентября 2011 г.

Зав. кафедрой ИКСУ

доктор технических наук ______________ А.М. Малышенко

Председатель учебно-методической

комиссии ______________ В.Н. Шкляр

Рецензент

Доцент ИКСУ ИК НИ ТПУ кандидат технических наук

В.Н. Шкляр

© ГОУ ВПО «Томский политехнический

университет», 2011

© Мамонова Т.Е., 2011

© Оформление. Издательство Томского

политехнического университета, 2011

ЛАБОРАТОРНАЯ РАБОТА № 12

Графика в C++

Цель работы. Научиться использовать графические функции библиотеки BGI в С++.

Теоретическая часть

Для работы в графическом режиме на компьютере должен быть установлен один из графических адаптеров и монитор, соответствующий этому типу адаптера. Управление экраном в графическом режиме происходит с помощью функций, прототипы которых описаны в заголовочном файле <graphics.h>. Прежде чем использовать графические функции, необходимо установить видеоадаптер в графический режим. Для инициализации графики служит функция initgraph. Ее прототип:

void initgraph (int *driver,int *mode,char *path);

Эта функция считывает в память соответствующий драйвер, устанавливает графический режим, соответствующий аргументу mode и определяет маршрут к папке, в которой находится драйвер BGI. В таблице 1 представлены коды драйверов графических устройств.

Таблица 1. Коды драйверов графических устройств.

Макрос Значение
aDETECT
CGA
MCGA
EGA
EGA64
EGAMONO
IBM8514
HERCMONO
ATT400
aVGA
PC3270

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

Функцияmode устанавливает код графического режима. Для каждого драйвера (VGA, CGA, MCGA, EGA, ATT400 ...) существует таблица кодов со значениями от 0 до 5 (см. табл. 2.)

Таблица 2. Коды для драйвера VGA

Имя Значение Размер поля Палитра
VGALO 640´200 16 цветов
VGAMED 640´350 16 цветов
aVGAHI 640´480 16 цветов

Программы, работающие с графикой BGI, выполняются как DOS приложения. Поэтому для создания программ, использующих графические функции библиотеки BGI, в интегрированной среде Borland C++ необходимо воспользоваться проектом.

Проект – это файл с расширением ”.ide”, в котором определены файлы с исходным текстом программы вместе с указанием полных путей к ней, а также выходной ”.exe” файл. Кроме того, в нем перечислены Borland библиотеки, используемые при трансляции программы. Для выхода из графического режима используются функции:

closegraph( ); //закрыть графический режим;

restorecrtmode( );//перейти в текстовый режим.

Графический экран представляет двумерный массив пикселей. Каждый пиксель соответствует одной точке экрана, имеет две координаты x, y и может иметь свой цвет. Левый верхний пиксель имеет координаты (0,0). Установить цвет пикселя в точке с координатами (х, у) можно с помощью функции:

putpixel (int x, int y, int color);

Цвет устанавливается функцией:

setcolor (color);

Переменная color может принимать значения от 0 до 15:

0 – черный 5 – фиолетовый 10 – светло-зеленый

1 – синий 6 – коричневый 11 – светло-голубой

2 – зеленый 7 – светло-серый 12 – розовый

3 – голубой 8 – темно-серый 13 – светло-фиолетовый

4 – красный 9 – светло-синий 14 – желтый

15 – белый

Функции для работы с терминалом в текстовом режиме

(файл conio.h)

clreol – стирает символы от позиции курсора до конца строки в текстовом окне (void clreol(void));

clrscr – очищает экран (void clrscr(void));

cgets – выводит на экран строку str (char *cgets(char *str));

cprintf– выводит форматированную строку в текстовое окно, созданное функцией windows() (int cprintf(const char *format [, argument, ...]));

cputs – помещает в символьный массив str строку с клавиатуры (консоли) (int cputs(char *str));

cscanf – функция форматированного ввода, которая используется при работе с терминалом. в текстовом режиме (int cscanf(const char *format [, address,...]));

delline – удаляет строку в текстовом окне (где находится курсор) (void delline(void));

gotoxy – перемещает курсор в позицию текстового окна с координатами (x, y) (void gotoxy(int x, int y));

highvideo</FONT< td> – повышает яркость символов, выводимых на экран после ее вызова (void highvideo(void));

movetext – переносит текстовое окно в область экрана, правый верхний угол которого имеет координаты (x, y). Координаты угловых точек окна - (x0, y0), (x1, y1) (int movetext(int x0, int y0, int x1, int y1, int x, int y));

normvideo – устанавливает нормальную яркость выводимых на экран символов (void normvideo(void));

textattr – устанавливает атрибуты (фон, цвет) символов, выводимых на экран (void textattr(int newattr));

textbackground – устанавливает цвет фона по значению параметра c (void textbackground(int c));

textcolor– устанавливает цвет символов по значению параметра c (void textcolor(int c));

textmode – переводит экран в текстовый режим по значению параметра m (viod textmode(int m));

wherex– возвращает значение горизонтальной координаты курсора (int wherex(void));

wherey – возвращает значение вертикальной координаты курсора (int wherey(void));

window– создает текстовое окно по координатам угловых точек (x0, y0), (x1, y1) (void window(int x0, int y0, int x1, int y1)).

Наши рекомендации