Шаг 45.
Основные процедуры и функции, используемые в работе с графическими объектами
Здесь мы приведем сиснтаксис основных подпрограмм, используемых при создании графических приложений.
Перечислим основные процедуры работы с графическими объектами.
Таблица 1. Основные процедуры и функции
Процедура (функция) |
Назначение |
Line (x1,y1,x2,y2: Integer); |
Построение отрезка из точки с координатами (x1,y1) до точки (x2,y2) текущим цветом. |
Rectangle (x1,y1,x2,y2: Integer); |
Построение прямоугольника с координатами диагонали (x1,y1) и (x2,y2). Сама диагональ не изображается. |
Bar (x1,y1,x2,y2: Integer); |
Построение закрашенного прямоугольника с координатами диагонали (x1,y1) и (x2,y2). |
Circle (x,y: Integer,r:Word); |
Построение окружности с центром в точке (x,y) и радиусом r. |
SetColor (c: Word); |
Задание цвета изображения. |
SetBkColor(c: Word); |
Установка цвета фона. |
ClearDevice; |
Очистка экрана в графическом режиме. |
PutPixel (x,y:Integer,c:Word); |
Вывод на экран точки с координатами (x,y) цветом c. |
MoveTo (x,y: Integer); |
Перемещение графического курсора в точку с координатами (x,y). |
GetMaxX:Integer; |
Функция, возвращающая максимальное значение координаты X. |
GetMaxY:Integer; |
Функция, возвращающая максимальное значение координаты Y. |
SetFillStyle (p:Word, c: Word); |
Задание образца закраски области; p - вид штриховки, с - ее цвет. |
FloodFill (x,y: Integer, b: Word ); |
Закраска области, внутри которой находится точка с координатами (x,y).
Параметр b определяет цвет границы закрашиваемой области. |
OutText (s: String); |
Вывод строки текста с текущего местоположения курсора. |
OutTextXY (x,y: Integer;s: String); |
Вывод строки текста, начиная с точки (x,y). |
Возможные цвета и виды штриховки перечислены в таблицах 2 и 3.
Таблица 2. Возможные цвета
Цвет |
Числовое значение |
Black (чёрный) |
0 |
Blue (синий) |
1 |
Green (зелёный) |
2 |
Cyan (голубой) |
3 |
Red (красный) |
4 |
Magenta (фиолетовый) |
5 |
Brown (коричневый) |
6 |
LightGray (светло-серый) |
7 |
DarkGray (тёмно-серый) |
8 |
LightBlue (ярко-синий) |
9 |
LightGreen (ярко-зелёный) |
10 |
LightCyan (ярко-голубой) |
11 |
LightRed (ярко-красный) |
12 |
LightMagenta (малиновый) |
13 |
Yellow (жёлтый) |
14 |
White (белый) |
15 |
Таблица 3. Виды штриховки
Вид |
Числовое значение |
Штриховка цветом фона. |
0 |
Сплошная штриховка. |
1 |
Штриховка (---). |
2 |
Штриховка (///). |
3 |
Утолщённая штриховка (///). |
4 |
Утолщённая штриховка (\\\). |
5 |
Штриховка (///). |
6 |
Штриховка (+++). |
7 |
Штриховка повёрнутыми плюсами (ххх). |
8 |
Штриховка частыми (+++). |
9 |
Штриховка точками. |
10 |
Штриховка частыми точками. |
11 |
Замечания. 1. Параметры в процедурах SetColor и SetBkColor
можно указывать как числами, так и словами, например, SetColor (Brown) или
SetColor (6).
2. В символьно-цифровом режиме для очистки экрана используется процедура ClrScr.
Для того, чтобы ею воспользоваться необходимо к программе подключить модуль Crt.
3. Начальное положение графического курсора - это точка с координатами (0,0) - левый
верхний угол экрана дисплея. Это справедливо и для символьно-цифрового режима.
Приведём пример программы, использующей некоторые из рассмотренных графических процедур.
Изобразить окружность, заштриховать её и сделать подпись. Приведем текст программы,
реализующей эту задачу.
Program Okr;
Uses Graph; {Подключение графического модуля.}
Var
gd,gm,x,y,r: Integer;
Begin
gd:=detect;{Автоматический выбор типа и режима работы.}
Writeln('Задайте координаты центра окружности');
Readln(x,y);
Writeln('Радиус окружности: ');
Readln(r);
{Перевод экрана в графический режим.}
InitGraph(gd,gm,'F:\BP\BGI');
SetColor(Green); {Установка цвета}
{выводимой окружности.}
SetBkColor(Yellow); {Установка цвета фона.}
ClearDevice; {Очистка экрана.}
Circle(x,y,r); {Построение окружности.}
SetFillStyle(9,Red); {Задание вида штриховки.}
FloodFill(x,y,Green); {Закрашивание окружности.}
OutTextXY(x,y+10+r,'Окружность'); {Вывод подписи.}
Readln; {Задержка.}
CloseGraph; {Перевод экрана дисплея в текстовый режим.}
End.
Текст этой программы можно взять
здесь.
Прокомментируем некоторые фрагменты программы.
1. Третий параметр процедуры InitGraph будет иметь различные значения, в
зависимости от инсталляции среды программирования Pascal.
2. В процедуре FloodFill третий параметр задает цвет границы
закрашиваемой области, а не цвет закраски!
3. Закрашиваемая область должна быть замкнута и быть одного цвета! Это требование
связано со способом закраски области. Если хотя бы одно из этих требований будет нарушено,
краска "выльется" и "зальет" весь экран.
На следующем шаге мы разберем несколько примеров составления графических программ.
Предыдущий шаг
Содержание
Следующий шаг