Здавалка
Главная | Обратная связь

Управление экраном и окнами



В графическом режиме поддерживается концепция окон. Окно представляет собой прямоугольную область экрана со своей относительной системой координат. По умолчанию окно занимает весь экран, значения координат его левого верхнего и правого нижнего угла устанавливаются автоматически процедурой инициализации (например (0,0) и (640,480)).

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

Процедура SеtViewPort (X1,Y1,X2,Y2:integer; Clip:boolean); служит для организации окон. Здесь X1,Y1 – координаты левого верхнего угла, X2,Y2 – координаты правого нижнего угла. Параметр Clip определяет, будут ли фрагменты изображения отсекаться при попадании за пределы окна (Clip=True или Clip=ClipOn) или нет (Clip=False или Clip=ClipOff). После создания окна началом координат станет верхний левый угол окна, который будет иметь координаты (0,0).

Процедура ClearViewPort; используется для очистки окна. Текущее окно при этом заполняется фоновым цветом, а текущий указатель устанавливается в точку с координатами (0,0). Напомним, что это координаты во внутренней системе координат, связанной с данным окном, а не в системе координат полного экрана. Перейти к системе координат полного экрана можно с помощью процедуры ClearDevice, или задав в процедуре установки окна максимально возможные значения: SetViewPort(0,0,GetMaxX, GetMaxY, True);.

Управление цветом и фоном

Во время инициализации графического режима устанавливается палитра цветов. Палитрой называется максимальный набор цветов, поддерживаемых BGI–драйвером. Она включает 16 цветов, пронумерованных от 0 до 15, которые используются по умолчанию в режимах 640´480 для VGA (и для EGA) как в текстовом, так и в графическом режиме.

Таблица 2 Названия цветов на английском и русском языках и их номера.

Имя цвета Номер цвета Название цвета
Black Blue Green Cyan Red Magenta Brown LightGray DarkGray LightBlue LightGreen LightCyan LightRed LightMagenta Yellow White черный синий зеленый голубой красный фиолетовый коричневый светло-серый темно-серый светло-синий светло-зеленый светло-голубой светло-красный светло-фиолетовый желтый белый

Для установки цвета изображения и окна применяются процедуры SetColorи SetBkColor.

Процедура SetColor(<цвет>:word); служит для задания цвета, которым будут обозначены контуры фигуры или текста. Если в качестве цвета указан недопустимый номер цвета, то текущий цвет не изменяется.

Процедура SetBkColor (<цвет>:word); устанавливает новый цвет фона.

Построение простейших графических изображений

Отображение точки

Какие бы изображения не выводились на экран, все они построены из точек.

Процедура PutPixel(X,Y:integer; Color:word); отображает точку на экране, где Х и Y – экранные координаты точки, Color – ее цвет.

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

Uses Graph;

Var Driver, Mode:integer;

Color:word;

X,Y:word;

Procedure GrInit;

Begin

Driver:=Detect; { автораспознавание драйвера }

InitGraph (Driver, Mode, ‘’);

If GraphResult<>0 then

begin

Writeln ('Ошибка инициализации!');

Writeln ('Работа программы прервана');

Halt (1) { остановить выполнение программы с кодом завершения – 1 }

End

End;

Begin

GrInit; { графические действия }

Color:=0;

Randomize;

Repeat {выберем случайным образом координаты точки}

X:=Random(GetMaxX);

Y= Random(GetMaxY);

PutPixel(X,Y,Color); {вывод точки}

Inc (Color); {изменение цвета}

If Color=GetMaxColor Then Color:=0; {не превышает ли значение цвета}

{максимального значения, которое}

{определяет функция GetMaxColor?}

Until KeyPressed; {повторять до нажатия любой клавиши}

ClearDevice;

CloseGraph

End.







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.