- •Введение
- •Управление экраном в текстовом режиме
- •Установка текстового режима
- •Установка цвета и фона
- •Управление курсором.
- •Управление строками.
- •Управление звуком.
- •Текстовые окна.
- •Использование клавиатуры.
- •Организация меню пользователя. Элементы псевдографики.
- •Виды меню
- •Использование буфера экрана.
- •Управление экраном в графическом режиме.
- •Стандартные подпрограммы для работы в графическом режиме
- •Установка графического режима.
- •InitGraph (var Driver,Mode:integer; DriverPath:string) -
- •Координаты, графические окна.
- •Выбор цвета, стиля заполнения.
- •Геометрия
- •Точки и линии.
- •Многоугольники
- •Дуги, окружности, эллипсы
- •Вывод текста
- •Сохранение и выдача изображений
- •Дополнительные стандартные подпрограммы для работы в графическом режиме. Анализ графического режима
- •Установки графических окон, страницы
- •Выбор палитры, заполнения
- •Геометрия
- •Установки вывода текста.
- •Организация библиотек пользователя
- •Interface
- •Implementation
- •Interface
- •Implementation
- •Приложение 1. Кодировочная таблица пэвм.
- •Приложение 2. Константы графического режима.
Координаты, графические окна.
Многие процедуры и функции графического режима используют внутренний текущий указатель местоположения на экране, который в отличие от текстового курсора является невидимым. Среди них MoveRel, MoveTo, LineTo, LineRel, InitGraph, SetGraphMode, ClearDevice, SetViewPort, ClearViewPort.
В текстовом режиме работы курсор находится за последним выведенным символом и указывает место вывода следующего. В графическом режиме текущий указатель определяет начальные координаты изображения графического объекта, выводимого от текущего положения. Определение местоположения текущего указателя происходит корректно даже если вывод производился за пределы координатного окна.
Процедурой MoveToX,Y:integer) пользователь может задать новое местоположение текущего указателя с абсолютными координатами X и Y, а процедурой MoveRel(X,Y:integer) c относительными X,Y, т.е. смещение относительно текущего местоположения.
Функции GetMaxX и GetMaxY типа integer возвращают максимальные координаты экрана соответственно по горизонтали и вертикали текущего графического режима.
Функции GetX и GetY типа integer возвращают текущие координаты указателя соответственно по горизонтали и вертикали относительно верхнего левого угла окна. Если окно не установлено, то относительно экрана.
SetViewPort(X1,Y1,X2,Y2:integer; Clip:boolean) - процедура установки прямоугольного окна в графическом режиме с координатами верхнего левого угла (X1,Y1) и правого нижнего (X2,Y2). Координаты верхнего левого угла текущего окна равны (0,0), текущий указатель помещается в эту точку. Булевская переменная Clip определяет будут отсекаться изображения на границе окна или нет. Для определения Clip существуют константы:
const ClipOn=true;
ClipOff=false;
Значение true устанавливает отсечение на границе окна, false не производит отсечения. Текущий указатель никогда не отсекается. Все графические процедуры будут действовать относительно установленного окна.
<Пример>.
Uses Graph;
Var Driver,Mode,Error:integer;
Begin
Driver:= Detect;
InitGraph (Driver, Mode,'');
Error:= GraphResult;
If Error <>0
then writeln('ошибка:',GraphErrorMsg(Error))
else
begin
OutTextXY(1,10,' ClipOn ClipOff');
Rectangle(0,40,120,150);
SetViewPort(0,40,120,150,ClipOn);
Circle(60,50,65); {часть окружности отсекается }
{ текущее окно - экран }
SetViewPort(0,0,GetMaxX,GetMaxY,clipOff);
Rectangle(200,40,310,150);
SetViewPort(200,40,310,150,ClipOff);
Circle(60,50,65); { окружность не отсекается }
readln; { и выходит за пределы окна }
CloseGraph
end
End.
ClearDevice - процедура очистки графического экрана. При этом указатель помещается в точку (0,0), все параметры приобретают значения по умолчанию, как и при инициализации графики процедурой InitGraph.
ClearViewPort - процедура очистки текущего графического окна.
ClearDevice и ClearViewPort используют для очистки области цвет с номером 0 из текущей палитры, т.е. цвет фона.