Управление экраном и окнами
В графическом режиме поддерживается концепция окон. Окно представляет собой прямоугольную область экрана со своей относительной системой координат. По умолчанию окно занимает весь экран, значения координат его левого верхнего и правого нижнего угла устанавливаются автоматически процедурой инициализации (например (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 Названия цветов на английском и русском языках и их номера.
Для установки цвета изображения и окна применяются процедуры 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 Все права принадлежат авторам размещенных материалов.
|