Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование на ЯВУ.doc
Скачиваний:
3
Добавлен:
11.11.2018
Размер:
1.17 Mб
Скачать

23.3.2. Вывод точек на экран

В графическом режиме имеется возможность задавать цвет изображения и фона (из палитры). Для этой цели используются следующие процедуры.

1) Установка цвета фона

SetBkColor(Цвет:Word); { Цвет из палитры }

2) Цвет рисунка устанавливается процедурой

SetColor (Цвет:Word);

Цвет – номер цвета из палитры (от 0 до 15). Палитра устанавливается при инициировании графического режима. Ее можно изменять с помощью процедуры SetAllPalette. Можно заменить один цвет в палитре на другой с помощью процедуры SetPalette.

3) Очистка экрана перед выводом изображения осуществляется с помощью процедуры ClearDevice.

Вызов пары процедур: SetBkColor(Цвет);

ClearDevice;

окрасит весь экран заданным цветом.

4) Количество цветов в палитре позволяет определить функция GetMaxColor.

5) Вывод на экран отдельных точек обеспечивает процедура

PutPixel(x,y,цвет:Word).

Здесь (x,y) – координаты точки, а цвет – ее цвет (из палитры).

В графическом режиме используется своя система координат. Координаты задаются не в символах, а в точках экрана (пикселях, Pixel).

6) Для перемещения курсора (чаще называемого текущим указателем – CP, Current Pointer) по экрану используется процедура:

MoveTo(X,Y : integer);

Курсор помещается в точку с координатами (X,Y). Эта процедура аналогична процедуре GotoXY для текстового режима, но в графическом режиме курсор на экране невидим. Максимальные значения координат экрана X и Y (см. рис. 2.21) можно определить с помощью не имеющих аргументов функций:

GetMaxX и GetMaxY,

П ример. Xmax := GetMaxX;

Рассмотрим пример программы с использованием описанных выше процедур.

Задача. Составить программу "Звездное небо", которая выводит на экран разноцветные точки в случайных местах. В программе для задания координат и цвета будем использовать генератор случайных чисел Random. Диапазон случайных чисел определяется функциями GetMaxX, GetMaxY и GetMaxColor соответственно. Программа будет иметь вид, приводимый ниже.

Program Plot_Stars;

Uses

Crt, Graph;

Var

Er, GDr, Gmode : Integer;

X, Y : Integer;

Color :Integer;

Begin

{ Параметры графического режима }

Gdr := Vga;

Gmode := VgaLo;

InitGraph(Gdr,GMode,’’);

Er := GraphResult;

If Er = GrOk then

Begin

Randomize; {Инициализация генератора случайных чисел}

SetBkColor(Black);

ClearDevice;

Repeat

Color := Random(GetMaxColor)+1;

X := Random(GetMaxX);

Y := Random(GetMaxY);

PutPixel(x,y, Color);

Delay(10);

Until Keypressed;

CloseGraph;

End

Else

begin

Writeln(’Ошибка графики: ’,Er,’. ’,GraphErrorMsg(Er));

Writeln(’ Нажмите любую клавишу...’);

Repeat Until KeyPressed;

end

End.

23.3.3. Вывод текста (надписей) в графическом режиме

В графическом режиме предоставляется значительно больше (по сравнению с текстовым режимом) возможностей для вывода текста. Можно выбрать шрифт, его размер, ориентацию символов, способ выравнивания текста и т.п. К сожалению, кириллица допустима не во всех стандартно поставляемых шрифтах.

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