Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Теория по графическому режиму.doc
Скачиваний:
6
Добавлен:
21.02.2016
Размер:
82.94 Кб
Скачать

Процедура DetectGraph

Для тестирования графического адаптера в модуле Graphобъявлена процедура:

DetectGraph (var GraphDriver, GraphMode : Integer);

Эта процедура может быть вызвана до инициализации графического режима. Через формальный параметр GraphDriverвозвращается значение номер драйвера, а через параметрGraphMode – номер режима. Эти значения рекомендуется подставлять в качестве фактических параметров в процедуруInitGraph.

Пример работы с графическим режимом:

Program TestGraph;

Uses Graph;

Var

gDriver : Integer; {для графического адаптера}

gMode : Integer; {для графического режима}

ErrorCode : Integer; {код ошибки}

Begin

DetectGraph(gDriver, gMode); {опрос наличия адаптера и его типа}

ErrorCode := GraphResult; {получение кода ошибки, если таковая есть}

If ErrorCode <> grOK then

Writeln(GraphErrorMsg(ErrorCode));

Else

Begin

InitGraph(gDriver, gMode, ’’); {инициализация граф.режима}

... {работа в графическом режиме}

CloseGraph; {закрытие граф.режима}

End

End.

Очистка экрана

Процедура ClearDeviceочищает графически экран и устанавливает указатель позиции в положение (0, 0).

Процедура GraphDefaults, кроме очистки экрана, устанавливает ряд параметров графической системы:

  1. графическое окно становится равным размеру экрана;

  2. восстанавливается системная цветовая палитра;

  3. переназначаются цвета основных линий и фона экрана;

  4. толщина и стиль линий принимаются как по умолчанию;

  5. цвет и шаблон заливки геометрических фигур и замкнутых ломаных принимается как по умолчанию;

  6. переустанавливается активный шрифт и его стиль.

Координаты устройства и мировые координаты

В растровой компьютерной графике экран представляет собой прямоугольный массив адресуемых точек и любое изображение на нем образуется как композиция светящихся или погашенных пикселов ( так называется минимальный элемент изображения). Эти точки адресуются двумя целыми - горизонтальным номером точки nxи вертикальным номеромny:

0 <= nx <= GetMaxX

0 <= ny <= GetMaxY

Функции GetMaxXиGetMaxYвозвращают количество адресуемых точек по горизонтали и по вертикали минус единица.

Точка (0,0) обычно расположена в левом верхнем углу экрана дисплея. Координаты (nx, ny) называют координатами устройства, и могут принимать только целые значения.

В компьютерной графике используются еще две системы координат. Первая – физическая система координат (px, py),гдеpx– физическое расстояние на экране по горизонтали, аpy– по вертикали. Ее оси измеряются в физических единицах измерения.

Вторая система координат – мировая. Она представляет собой декартову систему (X, Y), определенную программистом, и является независимой от типа устройства отображения:

xmin < x < xmax

ymin < y < ymax

Параметры, которыми задаются диапазоны изменения xиy (xmin, xmax, ymin, ymax),определяют прямоугольную область в абстрактном математическом двумерном пространстве.

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

Procedure WorldToDevice (x, y : Real; world_coord : TWorldRec;

var nx, ny : Integer);

Begin

nx := Round(( x - world_coord.Xmin )/

( world_coord.Xmax - world_coord.Xmin ))*GetMaxX;

ny := Round(( y - world_coord.Ymin )/

( world_coord.Ymax - world_coord.Ymin ))*GetMaxY;

End;

TWorldRec = record

Xmin, Ymin, {предельные значения мировых координат}

Xmax, Ymax : Real;

End;