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

attachments_23-05-2012_20-59-10 / Модуль graph

.doc
Скачиваний:
16
Добавлен:
31.05.2015
Размер:
40.96 Кб
Скачать

Модуль GRAPH

Модуль представляет собой библиотеку подпрограмм, которая полностью обеспечивает управление графическим режимом.

Чтобы запустить программу, в которой используются процедуры модуля, необходимо поместить в рабочий каталог соответствующие графические драйвера – это файлы с расширением bgi.

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

Uses Graph;

var GrDr, GrMode: integer;

begin

GrDr:= Detect;

InitGraph (GrDr, GrMode, ‘C\BP\BGI’);

if GraphResult <> 0 then

begin

writeln (‘Ошибка инициализации’);

halt (1);

end;

CloseGraph;

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

Построение изображение на экране

Система координат в графическом режиме начинается с верхнего левого угла с точки с координатами (0, 0). Х увеличивается слева направо, У – сверху вниз. При этом экран представляется в виде прямоугольного массива определенных точек.

Основные процедуры модуля

MoveTo (x, y: integer) – перемещение курсора в точку в координатами (х, у);

MoveRel (dx, dy: integer) – указатель перемещается на dx точек по горизонтали и dy точек по вертикали относительно последнего положения курсора;

ClearDevice – стирает изображение на экране, при этом онулирует все установки цвета и фона, указатель перемещает в точку (0, 0);

PutPixel (x, y, color) – вывод точки цвета color;

GetPixel (x, y): word - определяет номер цвета точки, которая имеет координаты (x, y);

Line (x1, y1, x2, y2) – вывод отрезка;

LineTo (x, y) – строит отрезок из текущего расположения курсора до точки с координатами (x, y);

Rectangle (x1, y1, x2, y2) – строит прямоугольник на плоскости;

Bar (x1, y1, x2, y2) - прямоугольник с закрашенной областью;

Bar3D (x1, y1, x2, y2, D3, Top) – объемный четырехугольник, где D3 – глубина в пикселях;

Circle (x, y, r) – окружность;

Arc (x, y, st, end, r) – дуга, где st – начальный угол, end – конечный угол;

Ellipse (x, y, st, end, xr, yr) – эллипс, где xr, yr – меньший и больший радиус;

DrawPoly (Num, var PolyPoints) – изображение ломаной, где Num – количество точек, PolyPoints – массив координат точек.

Пример: построение шестиугольника

Type

PointType = record

x, y: integer;

end;

var

Points: array [1..6] of PointType;

begin

<инициализация графики>

Randomize;

repeat

cleardevice;

for i:=1 to 5 do

begin

Points[i].x:= Random (100);

Points[i].y:= Random (20);

end;

Points[6].x:= Points[1].x;

Points[6].y:= Points[1].y;

DrawPoly (6, Points);

until Ch=#27;

end.

Пример: Движение заданного объекта по экрану в произвольном направлении:

program Anim;

Uses crt, graph;

var

h, x, y, gd, gm, r: integer;

begin

gd:=detect;

InitGraph (gd, gm, ‘ ‘);

writeln (‘r: ‘);

readln (r);

h:=1;

for x:=0 to 640-r do

begin

setcolor (7);

circle (x, y, r);

circle (x, y, 2*r);

delay (3000);

setcolor (0);

circle (x, y, r);

circle (x, y, 2*r);

x:=x+h;

y:=y+h;

end;

readkey;

closegraph;

end.

Соседние файлы в папке attachments_23-05-2012_20-59-10