136____________________________________________

волах в строке требуется 4 тысячи байтов (по 2 тысячи на коды символов и коды атрибутов). В одном из графических режимов для хранения одной страницы размером 640Х480 пикселов (наименьших элементов) 16-цветного изображения требуется свыше 150 тысяч байтов (почти в 40 раз больше). Необходимость использования множества графических режимов обусловлена разнообразием видеоадаптеров.

Начнем с использования режима 9, который пригоден для EGA и совместимых с ним более современных моделей. Изображение на экране состоит из 640Х350 точек (координаты точек по оси Х от 0 до 639 слева направо, а по оси Y от 0 до 349 сверху вниз). Цвет каждой точки кодируется 4 битами, поэтому имеется возможность построения 16-цветного изображения. Устройство видеоадаптера позволяет приписать каждому из этих кодов любой из 64 цветов.

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

• построение точки,

• построение отрезка прямой,

• построение дуги или полной окружности (эллипса),

• построение контура прямоугольника и прямоугольника,

• закрашивание части экрана, ограниченной контуром.

Начнем с простейших процедур построения точек. Введите следующую программу:

SCREEN 9

CLS

SLEEP 1

FOR I%=0 ТО 370

FOR J%=I% TO I%+250

IF I%>19 THEN PRESET(J%,I%-20) IF I%<350 THEN PSET(J%+20,I%) NEXT J% NEXT 1%

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

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

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