Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторные Паскаль.docx
Скачиваний:
1
Добавлен:
01.04.2025
Размер:
780.93 Кб
Скачать

2.2 Вывод точек

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

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

Рассмотрим основные процедуры вывода базовых графических элементов на примере программы вывода на экран дисплея вспыхивающих и гаснущих точек.

Program Dots;

Uses Crt, Graph;

const N = 500;

var

d, m, k, x, y: integer;

px, py: array [1..N] of integer;

begin

{Инициализация графического режима}

d := detect; m := VGAMed;

InitGraph (d, m, ' ');

{Создание и запоминание координат точек в массивах px и py}

for k := 1 to N do

begin

px [k] := Random (GetMaxX);

py [k] := Random (GetMaxY)

end;

{Вывод точек в цикле с постусловием}

repeat

for k := 1 to N do

begin

x := px [k]; y := py [k];

PutPixel (x, y, white); {Высвечивание очередной точки белым цветом}

end;

if not KeyPressed then

for k := N downto 1 do

begin

x := px [k]; y := py [k];

PutPixel (x, y, black); {Гашение очередной точки – цвет чёрный}

end;

until KeyPressed;

while KeyPressed do k := ord (ReadKey);

CloseGraph

end.

Здесь Random (R: word) – функция модуля System, формирующая псевдослучайное число. При обращении к функции в виде Random она формирует и возвращает в программу псевдослучайное вещественное число в диапазоне от 0 до 1. При обращении к функции в виде Random (R) она формирует и возвращает в программу псевдослучайное целое число в диапазоне от 0 до R-1. При каждом запуске программы эта функция будет генерировать одну и ту же последовательность случайных чисел, так как исходное число, с которого начинается генерация, остаётся постоянным.

Функция GetMaxX: integer модуля Graph возвращает максимальную горизонтальную координату графического экрана;

Функция GetMaxY: integer модуля Graph возвращает максимальную вертикальную координату графического экрана;

Процедура PutPixel (X, Y: integer; color: word) модуля Graph выводит точку цветом color с координатами X и Y.

Функция KeyPressed: boolean модуля Crt принимает значение true, если на клавиатуре была нажата какая-либо клавиша, и значение false в противном случае. Функция KeyPressed не задерживает выполнение программы;

Функция ReadKey: char модуля Crt считывает символ с клавиатуры без вывода его на экран и приостанавливает исполнение программы до нажатия на любую клавишу, кроме клавиш Shift, Ctrl, Alt, Caps Lock, Num Lock и Scroll Lock.

Функция ord (Х): longint модуля System определяет порядковый номер, соответствующий значению переменной Х.

2.3 Вывод отрезков прямых линий

Перед выводом изображения необходимо задать цвет линии, её толщину и тип. Эту задачу решают, используя процедуру SetLineStyle модуля Graph, формат обращения к которой имеет вид: