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

ОАиП_1 / Module2 / УЭ-7

.html
Скачиваний:
18
Добавлен:
25.02.2016
Размер:
15.09 Кб
Скачать

Документ без названия

Модуль GRAPH    Модуль - это подключаемая к программе библиотека ресурсов. Он может содержать описания типов, констант, переменных и подпрограмм.       Модули применяются либо как библиотеки, которые могут использоваться различными программами, либо для разбиения сложной программы на составные части. Использование модулей позволяет преодолеть ограничение в один сегмент на объем кода исполняемой программы, поскольку код каждого подключаемого к программе модуля содержится в отдельном сегменте.    Модуль 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)       Cтроит отрезок из текущего расположения курсора до точки с координатами (x, y); Rectangle (x1, y1, x2, y2)       Cтроит прямоугольник на плоскости 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 – массив координат точек.       Пример 1. Построение шестиугольника 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.       Пример 2. Движение заданного объекта по экрану в произвольном направлении: 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.

Соседние файлы в папке Module2