- •Глава 1
- •Свойства алгоритма
- •Словесный способ записи алгоритма.
- •Структурно-стилизованный способ записи алгоритма.
- •Программный способ записи алгоритма.
- •Графический способ записи алгоритма.
- •Циклическая структура с постусловием
- •Циклическая структура с предусловием
- •Циклическая структура с параметром
- •Глава 2
- •Символы разделители:
- •Зарезервированные слова
- •Стандартные идентификаторы
- •Стандартные константы
- •Операции div и mod
- •Стандартные функции
- •Правила написания арифметических выражений
- •Возведение в степень
- •Раздел описания меток
- •Раздел описания констант
- •Раздел описания переменных
- •Раздел определения типов данных
- •Перечисляемый тип
- •Интервальный тип
- •Раздел описания процедур и функций
- •Раздел var ?
- •Глава 3
- •Оператор присваивания
- •Оператор безусловного перехода goto
- •Оператор вызова процедуры
- •Пустой оператор
- •Составной оператор
- •Условные операторы
- •Операторы повтора
- •Глава 4
- •Линейная сортировка
- •Метод сортировки Шелла
- •Метод прямого обмена (пузырьковый метод)
- •Глава 5
- •Глава 6
- •Цветовая шкала
- •Стандартные стили заполнения
- •Стиль линии
- •Толщина линии
- •Построение прямоугольников
- •Построение дуг и окружностей
- •Глава 1 3
- •Глава 2 36
- •Глава 3 78
- •Глава 4 130
- •Глава 5 157
- •Глава 6 167
Глава 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 графических процедур, функций, десятки стандартных констант и типов данных.
Для запуска графической системы необходимо сделать следующее:
Подключить модуль GRAPH – библиотеку графических процедур;
Вызвать процедуру 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).