Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции ИВАНОВ Книга Паскаль.doc
Скачиваний:
5
Добавлен:
18.11.2019
Размер:
1.93 Mб
Скачать

Глава 6

графика

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

Для вывода графических изображений необходимо перевести экран в один из графических режимов. В графическом режиме можно из программы управлять состоянием каждого пикселя (точечного элемента) экрана.

Графические режимы отличаются:

  • размером графической сетки (М*N, где М – количество точек по горизонтали, N - количество точек по вертикали);

  • цветностью (число воспроизводимых на экране цветов).

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

Константы, определяющие видеорежим, приведены в таблице 6.1 вместе с информацией о выбираемом режиме и типе видеоадаптера, который может такой режим поддерживать.

Таблица 6.1

Драйвер

Режим

Разрешение

Файл

CGA (1)

CGACo, CGAHi

320*200 (640*200)

CGA.BGI

EGA (3)

EGALo, EGAHi

640*200 (640*350)

EGAVGA.BGI

VGA (9)

VGALo, VGAHi

640*200 (640*350)

EGAVGA.BGI

HERC (8)

HERCMONOHI

720*348

HERC.BGI

Какой бы адаптер ни был установлен на компьютере, мы можем использовать один и тот же набор графических процедур и функций Турбо Паскаля благодаря тому, что их конечная настройка на конкретный адаптер осуществляется автоматически. Графические адаптеры разработаны практически для всех существующих видеоадаптеров. Они находятся в файлах, имеющих расширение .BGI (Borland Graphics Interface) и активизируются при инициализации графического режима.

6.1 МОДУЛЬ GRAPH

Для формирования графических изображений в языке Турбо Паскаль предназначен стандартный библиотечный модуль GRAPH. В нем содержится 79 графических процедур, функций, десятки стандартных констант и типов данных.

Для запуска графической системы необходимо сделать следующее:

  1. Подключить модуль GRAPH – библиотеку графических процедур;

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

Формат процедуры:

InitGraph (var Driver, Mode: integer; Path: string);

где Driver – целая переменная, определяющая тип графического драйвера;

Mode - целая переменная, задающая режим работы графического драйвера;

Path – маршрут поиска файла графического драйвера (если он расположен в активной директории, то вместо маршрута ставятся два апострофа).

Пример программы для инициализации графики на начальном этапе работы:

uses Graph;

var Driver, Mode: integer;

begin

Driver:=Detect; {для автоматического определения драйвера и установки режима}

InitGraph (Driver, Mode,’\TP\BGI’);

Во время выполнения программы процедура InitGraph автоматически распознает графический адаптер, установленный на ПК, загружает и инициализирует соответствующий графический драйвер, переводит адаптер в графический режим и возвращает управление вызывающей программе. С этого момента все графические средства доступны пользователю.

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

6.2 БАЗОВЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ

Для построения изображений на экране используется система координат. Отсчет начинается от верхнего левого угла экрана, который имеет координаты (0, 0). Значение Х (столбец) увеличивается слева направо, значение Y (строка) увеличивается сверху вниз.

Рассмотрим экран, который имеет 640 точек в горизонтальном (Х) направлении и 480 – в вертикальном (Y) (см. рисунок 6.1).

Рис. 6.1. Координаты экрана

Чтобы строить изображение. Необходимо указывать, по крайней мере, точку начала вывода. В текстовых режимах эту точку указывает курсор, который присутствует на экране. В графических режимах видимого курсора нет, но есть невидимый текущий указатель CP (Current Pointer). Фактически это тот же курсор, но он невидим. Для перемещения CP имеются процедуры MoveTo и MoveRel.

Для перемещения текущего указателя в точку с координатами X, Y используется процедура:

MoveTo(X, Y : integer);

Например, MoveTo(200, 100) переместит CP в точку экрана с координатами 200, 100.

Для перемещения CP на dX точек по горизонтали и на dY точек по вертикали используется процедура:

MoveRel(dX, dY : integer);

Например, MoveRel(5, 10) переместит CP из точки с координатами 200, 100 в точку 205, 110.

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

6.2.1 Установка цвета

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

Процедура SetColor(Color : Word) устанавливает цвет, используемый процедурами графического вывода, в значение, заданное параметром Color. Возможные значения Color приведены в таблице 6.2.

Например, SetColor(3) или SetColor(Cyan).