Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Pascal.DOC
Скачиваний:
23
Добавлен:
21.03.2015
Размер:
1.77 Mб
Скачать

1. 15. 2. Простейшие графические процедуры и функции

После инициализации графического режима экран очищается и можно использовать процедуры рисования.

SetBkColor(N); - установить цвет "N" для пикселов фона.

По умолчанию установлен черный цвет фона.

SetColor(N); - установить цвет "N" для выводимых линий.

По умолчанию установлен белый цвет линий.

PutPixel(X, Y, N); - высветить цветом "N" пиксел с координатами X, Y.

Наибольшее значение параметра "N" возвращает функция GetMaxColor;. Цвет задается аналогично цветам текста в модуле Crt - мож-но использовать целое число или соответствующую константу, например, при N<16:

0 - Black, 1 - Blue, . . 15 - White. Режим мерцания в графике не предусмотрен.

Circle(X, Y, R); - построить окружность с центром X, Y и радиусом R.

Line(x1, y1, x2, y2); - построить отрезок прямой линии от точки с коорди-

натами x1, y1 к точке с координатами x2, y2.

Rectangle(x1, y1, x2, y2); - построить прямоугольник с левым верхним

углом в точке с координатами x1, y1 и правым нижним углом в точке с координатами x2, y2 ( стороны параллельны краям экрана ).

GetPixel(X, Y); - функция возвращает цвет пиксела с координатами X, Y.

Координаты точек имеют тип Integer, остальные параметры - тип Word.

Значения координат задаются в пределах 0 X GetmaxX; 0 Y GetmaxY;

Перемещение курсора за пределы экрана игнорируется.

Очистить графический экран можно процедурами: ClearDevice; (без изменения установленных параметров), либо GraphDefaults; (устанавливаются параметры, принятые по умолчанию).

80

Рассмотрим пример фрагмента программы:

Uses Crt, Graph; { раздел описаний для фрагментов программ N1- N8 }

const N= 500;

var X, Y, Vx, Vy, P: array[1..N] of integer; ch: char;

Gd, Gm, Gx, Gy, x1, y1, x2, y2, xc, yc, dx, dy, r: integer;

i1, i2, zx, zy, ax, ay, i, k: integer;

begin { инициализация графики для фрагментов программ N1- N8 }

Gd:=Detect;

InitGraph(Gd,Gm,'C:\tp7\bgi');Randomize; Gx:=GetMaxX; Gy:=GetMaxY;

{-----------------------------------------------------------------

Фрагмент N 1 программы "небо в алмазах" ( рисование пикселов ).

----------------------------------------------------------------- }

SetColor(0); Repeat i:= 9 + random(7); xc:= random(Gx);

yc:= random(Gy);

PutPixel(xc, yc, i); Circle(xc, yc, 3) Until KeyPressed;

{---------------------------------------------------------------- }

While KeyPressed do ch:= ReadKey; { очистка буфера клавиатуры }

CloseGraph; end. { закончить работу в графическом режиме }

После инициализации графики определяются переменные Gx, Gy - максимальные значения координат по осям X, Y. Назначается черный цвет для линий, которые будут выводиться. Затем в цикле повторяется до нажатия любой клавиши высвечивание точек (пикселов) с номерами цвета "i" от 9 до 15 и координатами xc, yc. Значения координат точек и номеров цвета определяются из заданного диапазона функцией Random. Чтобы точки не "забивали" экран, некоторые из них "гасятся" окружностью радиусом 3 пиксела с центром в появившейся точке.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]