Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
алгоритмизация павлодар.doc
Скачиваний:
14
Добавлен:
21.02.2016
Размер:
1.01 Mб
Скачать

Лабораторная работа № 10

Тема: Разработка программ с использованием графических построений.

Цель: Научиться работать с монитором в графическом режиме, изучить графические возможности среды Pascal.

  1. Теоретические сведения.

Установка графического режима.

Для использования графических возможностей необходимо подключить к программе модуль Graph.

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

Procedure InitGraph (Var gd, gm:Integer; Path:String),

в которой переменная gd определяет тип графического драйвера, переменная gm – режим работы графического адаптера, константа Path – маршрут поиска файла драйвера. Для автоматического определения типа драйвера можно использовать процедуру Detect:

gd: = detect;

InitGraph (gd, gm, C:\Bp\Bgi);

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

Процедура

Procedure CloseGraph;

завершает работу адаптера в графическом режиме и восстанавливает текстовый режим работы экрана.

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

Function GraphResult : Integer;

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

Const

grOk = 0; {Нет ошибок}

grInitGraph = -1; {Не инициализировался графический режим}

grNotDetect = -2; {Не определен тип драйвера}

grFileNotFind = -3; {Не найден графический драйвер}

grInvalidDriver = -4; {Неправильный тип драйвера

grNoLoadMem = -5; {Нет памяти для размещения драйвера}

grNoScanMem = -6; {Нет памяти для просмотра областей}

grNoFloodMem = -7; {Нет памяти для закраски областей}

grFontNotFound = -8; {Не найден файл со шрифтом}

grNoFontMem = -9; {Нет памяти для размещения шрифта}

grInvalidMode = -10 {Неправильный графический режим}

grError = -11; {Общая ошибка}

grError = -12; {Ошибка ввода-вывода}

grInvalidFont = -13; {Неправильный формат шрифта}

grInvalidFontNum = -14; {Неправильный номер шрифта}

После обращения к функции GraphResult признак ошибки сбрасывается, поэтому повторное обращение к ней вернет ноль.

С помощью функции

Function GraphErrorMzg(Code:Integer):String;

можно по коду ошибки Code получить текстовое сообщение.

Ниже приведена типичная последовательность операторов для инициации графического режима с автоматическим определением типа драйвера:

Var gd, gm, Error: Integer;

begin

gd: = Detect; {Автоопределение драйвера}

InitGraph (gd,gm,'C:\Bp\Bgi'); {Инициируем графику}

Error: = GraphResult; {Получаем результат}

If Not (Error = grOk)

then {Проверяем ошибку}

Begin

{Выводим сообщение об ошибке}

Writeln (GraphErrorMsg(Error)); ……..

end

else {нет ошибки}

Begin

….{команда работы с графикой}

CloseGraph {Закрывается графический режим}

end

end.

Координаты.

Экран монитора в графическом режиме представляет собой множество точек, изменяя цвет которых можно получить графическое изображение. Каждая точка имеет свои координаты. Т.о., экран в графическом режиме можно рассматривать как координатную плоскость (см. рис.1). Стандартный размер экрана монитора SVGA составляет 640*480 пиксел (точек). Левый верхний угол экрана имеет координаты (0,0). Размерность экрана можно получить с помощью функции типаInteger GetMaxX и GetMaxY, которые возвращают максимальные координаты экрана в текущем режиме работы соответственно по горизонтали (по X) и вертикали (по Y).

В графическом режиме, аналогично курсору в текстовом режиме, имеется графический указатель. Его координаты можно получить с помощью функции типа Integer GetX и GetY.

Процедура

Procedure MoveRel (dX, dY: Integer).

Здесь dX, dY – приращение новых координат указателя (соответственно по горизонтали и вертикали) относительно того положения, которое занимал указатель к моменту обращения к процедуре.

Цвета.

Процедура

Procedure SetColor (Color: Word);

устанавливает текущий цвет Color для выводимых линий и символов. В модуле Graph определены точно также те константы для задания цвета, как и в модуле Сrt.

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