- •Лекции 17-19: Модули и их использование.
- •1. Концепция модуля.
- •2. Структура описания модуля.
- •Interface
- •3. Разработка модулей.
- •4. Примеры модулей.
- •Interface
- •Implementation
- •Interface
- •Implementation
- •5. Использование модулей в программах.
- •6. Стандартный модуль сrt.
- •7. Стандартный модуль graph.
7. Стандартный модуль graph.
Модуль GRAPH - библиотека подпрограмм работы с графическим режимом экрана. В графическом режиме экран рассматривается как совокупность точек (пикселей), яркостью и цветом которых можно управлять, получая то или иное графическое изображение. В модуле GRAPH имеются около 80 подпрограмм управления графическим экраном, обеспечивающие многие потребности графических программ. У нас нет возможности детально останавливаться на этих подпрограммах, поэтому ограничимся общей характеристикой средств данного модуля и простым примером графической программы, использующей модуль GRAPH.
Графический экран состоит из точек-пикселей, образующих растр. Для адресации пикселя используется координатная сетка, ведущая свой отсчёт от верхнего левого угла, имеющего координаты (0,0), и увеличивающая значения координат слева направо и сверху вниз. Для установки графического режима предусмотрена процедура InitGraph, а для возврата в текстовый режим - CloseGraph. На экране можно создавать графические окна (процедурой SetViewPort), ограничивающие графический вывод границами окна.
Значительная группа подпрограмм обеспечивает рисование элементарных графических фигур (точек, прямых линий, окружностей, эллипсов и их дуг, прямоугольников, многоугольников), установку цветов и яркости, а также закрашивание замкнутых фигур различными цветами и стилями закраски или оформления линий.
Имеются средства вывода текста на графический экран с помощью специально предусмотренных шрифтов (матричных и штриховых). Для использования штриховых шрифтов необходимы соответствующие шрифтовые файлы (с расширением chr).
Имеются также средства для хранения и вывода изображений, работы с несколькими графическими страницами.
Для иллюстрации работы с модулем GRAPH приведем небольшую программу формирования и вывода на графический экран изображения Российского флага:
program russian_flag;
{Формирование изображения Российского флага на графическом экране}
uses Graph,CRT;
var path:string;driver,mode,r,j,i:integer;c:word;
begin {начальная установка графического режима}
clrscr;driver:=detect;mode:=VGAHi;InitGraph(driver,mode,'');
{полукруг на голубом фоне}
setbkcolor(cyan);r:=99;arc(319,239,0,180,r);
{рисование флагштока}
moveto(319-r,239);lineto(319+r,239);delay(1000);
{наполнение цветом полукруга и флагштока}
setfillstyle(solidfill,green);floodfill(300,200,white);
{рисование трехцветного флага}
moveto(319,239-r);lineto(319,5);c:=white;
for j:=1 to 3 do begin setfillstyle(solidfill,c);
bar(319,5+(j-1)*33,319+2*r,5+j*33);
c:=(c+3) mod 17;delay(1000)
end;readln
end { russian_flag}.