Реферат: Графика Турбо-Паскаля. Динамические изображения

yg =ry -|sy * y |-dy ,

где |x | - целая часть х ; sx и sy – масштабные множители, выбираемые из условия

rx =|sx * xmax |+1,

ry =|sy * ymax |+1.

Здесь xmax и ymax – максимальные значения геометрических координат. Пересчет координаты y по такой же формуле, что и для х , привел бы к зеркально отраженному относительно горизонтальной линии изображению. Слагаемые dx и dy обеспечивают смещение изображения относительно левого верхнего угла экрана. Изображение будет смещено в центр экрана при

dx =|rx /2|,

dy =|ry /2|.

Чтобы изображение не зависело от разрешения, в Турбо Паскале используются функции GetMaxX и GetMaxY, возвращающие наибольший и номер пикселя по горизонтали и по вертикали соответственно. Графические координаты правого нижнего угла экрана равны ( GetMaxX, GetMaxY).

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

Работа дисплея невозможна без специальных микросхем, управляющих его работой. Видеоадаптер должен поддерживать работу дисплея в графическом режиме. Турбо Паскаль обеспечивает работу со следующими видеоадаптерами: CGA, MCGA,EGA, VGA, Hercules, AT&T 400, 3270 PC, IBM-8514.

Работой видеоадаптера управляет специальная программа, которая называется драйвером . Драйвер хранится в отдельном файле на диске и содержит как исполняемый код, так и необходимые ему для работы данные. Признак файла с драйвером – расширение . bgi имени файла. Имя файла с драйвером соответствует типу видеоадаптера вашего компьютера.

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

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

Модуль Graph должен явно подключаться к программе с помощью оператора использования Uses, записываемого после заголовка программы :

Program Grafics ;

Uses Graph ;

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

где value – это любое некоторое число (таблица 1), либо встроенная константа (встроенные константы не надо описывать специально, так как их описания содержатся в модулях).

Некоторые возможные значения value приведены в таблице1.

Таблица1 – Тип видеоадаптера

Константа Значение

CGA

MCGA

EGA

EGA64

EGAMono

HercMono

AT&T400

VGA

PC3270

1

2

3

4

5

7

8

9

10

При автоматическом распознавании видеоадаптера в правой части оператора присваивания используется константа Detect (или нулевое значение).

d:= Detect; d:=0.

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

Таблица 2 – Графические режимы

Константа Значение Описание графического режима
EGALo 0 640x200, 16 цветов, 4страницы
EGAHi 1 640x350,16 цветов, 2 страницы
EGA64Lo 0 640x200, 16 цветов, 1 страница
EGA64Hi 1 640x350, 4 цвета, 1 страница
VGALo 0 640x200, 16 цветов, 4 страницы
VGAMed 1 640x350, 16 цветов, 2 страницы
VGAHi 2 640х480, 16 цветов, 1 страница
VGAHi2 3 640х480, 2 цвета, 1 страница

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

Переключение в графический режим работы дисплея выполняется вызовом процедуры InitGraph из модуля Graph .

Описание:

InitGraph( var d, t, ‘’);

Первый параметр в этой процедуре задает тип видеоадаптера, второй определяет режим. И параметр d , и параметр t являются параметрами-переменными (var ). Параметр ‘’ определяет путь доступа к каталогу (маршрут), в котором находятся графические драйверы. Если этот параметр пуст, то подразумевается, что файлы драйверов содержатся в текущем каталоге.

К-во Просмотров: 311
Бесплатно скачать Реферат: Графика Турбо-Паскаля. Динамические изображения