Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции+Pascal.doc
Скачиваний:
31
Добавлен:
02.12.2018
Размер:
647.17 Кб
Скачать

11.2 Инициализация графики

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

Gd – тип драйвера

Gm – режим графики

USES Graph;

VAR

Gd,Gm:Integer;

Begin

Gd:=VGA; Gm:=1;

{Инициализация графического режима}

InitGraph(Gd,Gm,'C:\TP7\BGI');

{Обработка ошибки инициализации}

IF GraphResult<>0 THEN Begin

WriteLn(‘Ошибка инициализации’);

HALT(1);

End;

………….

CloseGraph; {завершение графического режима}

End.

11.3 Переключение между текстовым и графическим режимами

Переключение режимов осуществляется процедурой

SetGraphMode(GraphMode);

Переключает систему в графический режим и очищает экран монитора.

Процедура

RestoreCRTMode;

возвращает систему в текстовый режим.

USES Graph;

VAR

Gd,Gm:Integer;

Begin

{Первоначально в текстовом режиме}

WriteLn(‘Нажмите Enter для перехода в графику’);

ReadLn;

Gd:=Detect;

{Инициализация графического режима}

InitGraph(Gd,Gm,'C:\TP7\BGI');

{Обработка ошибки инициализации}

IF GraphResult<>0 THEN Begin

WriteLn(‘Ошибка инициализации’);

HALT(1);

OutText(‘Нажмите Enter для возвратав текстовый режим’);

ReadLn;

{Переключение в текстовый режим}

RestoreCRTMode;

WriteLn(‘Снова нажмите Enter’);

ReadLn;

SetGraphMode(GetGraphMode);

OutText(‘Вы снова в графике’);

ReadLn;

CloseGraph;

End;

11.4 Система координат

(0,0) X

Y

Определение значений максимальных координат экрана в модуле Graph реализовано с помощью функций

GetMaxX:Integer;

GetMaxY:Integer;

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

OutText(Text)

Выводит на экран строку текста, начиная с текущего положения курсора.

OutTextXY(X,Y,Text)

Выводит на экран строку текста, начиная с точки с координатами X,Y.

11.5 Управление текущим указателем

Чтобы построить изображение, необходимо обязательно указать начальную позицию. В графическом режиме для перемещения указателя используются процедуры MoveTo и MoveRel

Формат:

MoveTo(X,Y:Integer);

Перемещает текущий указатель в точку с координатами X, Y.

MoveRel(dX,dY:Integer);

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

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

GetX:Integer;

GetY:integer;

Возвращающие значения текущих координат указателя.

Пример. Позиционирование указателя и определение его координат.

USES Graph;

VAR

Gd,Gm:Integer;

Begin

Gd:=Detect;

{Инициализация графического режима}

InitGraph(Gd,Gm,'C:\TP7\BGI');

{Обработка ошибки инициализации}

IF GraphResult<>0 THEN Begin

WriteLn(‘Ошибка инициализации’);

HALT(1);

{перемещение в центр экрана}

MoveTo(GetMaxX DIV 2,GetMaxY DIV 2);

OutTextXY(GetX,GetY,’Указатель в центре’);

{смещение указателя на некоторую величину}

MoveRel(-GetX DIV 2,-GetY DIV 2);

OutText(‘Указатель смещен’);

ReadLn;

CloseGraph;

END.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]