Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы на билеты.doc
Скачиваний:
121
Добавлен:
10.05.2014
Размер:
545.79 Кб
Скачать

Переход в графический режим в Turbo Pascal. Масштабирование экрана. Процедуры и функции для работы с экраном в графическом режиме.

Модуль Graph представляет собой мощную библиотеку графических подпрограмм универсального назначения, рассчитанную на работу с наиболее распространенными графическими адаптерами IBM-совместимых ПК. Подпрограммы модуля Graph обеспечивают различные режимы работы многорежимных адаптеров, полностью используют их цветовые возможности и разрешающую способность.

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

Графические драйверы поддерживают следующие графические адаптеры (и полностью совместимые с ними):

CGA

Hercules

MCGA

AT&T 400

EGA

3270 PC

VGA

IBM-8514

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

CGA.BGI

Драйвер для CGA, MCGA

EGAVGA.BGI

Драйвер для EGA, VGA

HERC . BGI

Драйвер для монохромного Hercules

ATT . BGI

Драйвер для AT&T 6300 (400 строк)

PC3270.BGI

Драйвер для IBM 3270 PC

IBM8514.BGI

Драйвер для IBM 8514

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

Подпрограммы модуля Graph позволяют адресоваться к любому элементу (пикселю) растрового графического экрана и управлять светимостью этого элемента. Для указания пикселя используется следующая система координат: верхний левый угол графического экрана имеет координаты 0,0; горизонтальная координата X увеличивается слева направо, вертикальная координата У увеличивается сверху вниз.

Некоторые графические подпрограммы используют понятие текущего указателя. Указатель содержит координаты того пикселя, начиная с которого будет строиться изображение подпрограммами LineTo, LineRel, OutText и др.

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

Процедура SetViewPort создает на экране графическое окно. Если окно определено, весь дальнейший графический вывод осуществляется относительно координат этого окна и отсекается его границами.

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

Значения ошибок, возвращаемые GraphResult

const

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

grNoInitGraph = -1;{Графика не инициализирована} 

grNotDetected = -2;{Графическое устройство не обнаружено} 

grFileNotFound = -3;{Файл драйвера устройства не найден} 

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

grInvalidMode =-10;{Недопустимый графический режим} 

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

grIOerror =-12;{Ошибка графического ввода/вывода}

Константы цвета

const

 

Black

= 0;{Черный}

Blue

= 1;{Синий}

Green

= 2;{Зеленый}

Cyan

= 3;{Голубой}

Red

= 4;{Красный}

Magenta

= 5;{Фиолетовый}

Brown

= 6;{Коричневый}

Константы типов и толщины линий

const

SolidLn=0;{Сплошная}

DottedLn=1;{Точечная}

NormWidth=1;{Нормальная толщина}

ThickWidth= 3;{Тройная толщина}

Константы управления шрифтом

const

DefaultFont = 0;{Матричный шрифт 8x8}

TriplexFont = 1;{Шрифт триплекс; файл TRIP.CHR}

SmallFont = 2;{Мелкий шрифт; файл LITT.CHR}

SansSerifFont= 3;{Прямой шрифт; файл SANS.CHR}

RightText = 2;{Указатель справа от текста}

BottomText = 0;{Указатель снизу от текста}

CenterText = 1;{Указатель по центру текста}

TopText = 2;{Указатель сверху от текста}

Константы отсечения

const

ClipOn = True;{Отсекать изображение} 

ClipOf£= False;{Игнорировать окно (не отсекать изображение)}

Процедуры

Procedure Arc(X, Y: Integer; StAngle, EndAngle, Radius: Word)Рисует дугу радиусом Radius от начального угла StAngle к конечному EndAngle, используя X, Y как координаты центра.

Procedure Bar (X1, Y1, X2, Y2 : Integer)Рисует полосу заданного размера, используя текущий стиль и цвет.

Procedure Bar3D(X1, Y1, X2, Y2: Integer; Depth: Word; Top: Boolean)Рисует трехмерную полосу, используя текущий стиль и цвет.

Procedure Circle (X, Y: Integer; R: word)Рисует окружность радиуса R, используя X,Y как координаты центра.

Procedure ClearDevice Очищает экран. 

Procedure ClearViewPort Очищает окно. 

Procedure CloseGraphЗакрывает графический режим.

Procedure DetectGraph (var Driver, Mode: Integer)Возвращает тип Driver установленного драйвера и текущий режим Mode его работы.

Procedure DrawPoly (NumPoints: Word; var PolyPoints)Рисует многоугольник из NumPoints вершин с координатами в PolyPoints текущим цветом и типом линии.

Procedure Ellipse (X, Y; Integer; StAngle, EndAngle, XR, YR: Word)Рисует эллиптическую дугу от начального угла StAngle к конечному углу EndAngle, используя X, Y как координаты центра и XR. YR - как горизонтальный и вертикальный радиусы.

Procedure FillEllipse(X, Y; Integer; XR, YR: Word)Рисует заштрихованный эллипс, используя X, Y как центр uXR, YR как горизонтальный и вертикальный радиусы.

Procedure FloodFill (X, Y; Integer; Border; Word) Штрихует замкнутую область, содержащую внутреннюю точку с координатами X, Y и ограниченную линией с цветом Border. Используется текущий образец штриховки и цвет.

Procedure GetDefaultPalette(var Palette; PaletteType)Возвращает текущую палитру в записи PaletteType.

Procedure GetLineSettings (var LineInfo; LineSettingsType)Возвращает текущий стиль, шаблон и толщину линии.

Procedure GetViewSettings (var viewport: NiewPortType) Возвращает координаты и признак отсечки текущего окна.

Procedure GraphDefaultsУстанавливает стандартные параметры графического режима.

Procedure InitGraph(var Driver, Mode; Integer; Path: String)Инициализирует графический режим. Переменные Driver и Mode должны содержать тип графического драйвера и его режим работы. Допускается указать Driver = 0 для автоматического определения этих параметров по результатам тестирования аппаратуры. Параметр Path определяет маршрут поиска файла графического драйвера.

Procedure Line (X1, Y1, Х2, Y2: Integer)Рисует линию от точки X1, Y1 до точки Х2, Y2.

Procedure LineRel(DX, DY: Integer)Рисует линию от текущего указателя к точке, заданной приращением координат.

Procedure LineTo(X, Y: Integer)Рисует линию от текущего указателя к точке X, Y.

Procedure MoveTo(X, Y: Integer)Смещает текущий указатель к точкеX,Y.

Procedure OutText (TextString: String)Выводит текстовую строку на экран.

Procedure OutTextXY(X, Y: Integer; TextString: String)Выводит текст в заданное место экрана.

Procedure PieSlice(X, Y: Integer; StAngle, EndAngle, Radius: Word)Рисует и штрихует сектор окружности радиусом Radius с центром в X.Y от начального угла StAngle к конечному углу EndAngle.

Procedure Rectangle (XI, Yl, X2, Y2: Integer)Рисует прямоугольник, используя текущий цвет и тип линии.

Procedure SetBkColor (Color: Word) Устанавливает цвет фона.

Procedure SetColor (Color: Word)Устанавливает основной цвет, которым будет осуществляться рисование.

Procedure SetFillPattern (Pattern: FillPatternType; Color: Word)Устанавливает произвольный образец штриховки.

Procedure SetFillStyle (Pattern, Color: Word)Устанавливает образец штриховки и цвет.

Procedure SetGraphBuf Size (Size: Word)Позволяет изменить размер буфера для функций штриховки.

Procedure SetGraphMode(Mode: Integer)Устанавливает новый графический режим и очищает экран.

Procedure SetLineStyle(LineStyle, Pattern, Thickness: Word)Устанавливает толщину и стиль линии.

Procedure SetPalette(ColorNum, Color: Word) Заменяет цвет палитры с номером ColorNum на цвет Color.

Функции

Procedure GetBkColor; Word Возвращает текущий фоновый цвет.

Procedure GetColor; Word Возвращает текущий цвет.

Procedure GetDriverName; StringВозвращает строку с именем текущего драйвера.

Procedure GetGraphMode: Integer Возвращает текущий графический режим.

Procedure GetMaxColor; Word Возвращает максимальный цвет, который можно задать в SetColor.

Procedure GetMaxMode: Integer Возвращает номер максимального режима текущего загруженного драйвера.

Procedure GetMaxX: IntegerВозвращает максимальную горизонтальную координату графического экрана.

Procedure GetMaxY; IntegerВозвращает максимальную вертикальную координату графического экрана.

Procedure GetModeName(ModeNum; Word) ; StringВозвращает строку с именем указанного графического режима.

Procedure GetPaletteSize: IntegerВозвращает размер таблицы палитры.

Procedure GetPixel (X, Y; Integer) : WordВозвращает цвет пикселя с координатами X,Y.

Procedure GetX: IntegerВозвращает координату X текущего указателя.

Procedure GraphResult: Integer Возвращает код ошибки для последней графической операции.

Соседние файлы в предмете Информатика