Занятие 1: Графический режим. Инициализация графического режима. Построение точки, линии.
Стандартное состояние компьютера после запуска Турбо Паскаля – текстовый режим. Для того, чтобы использовать его графические средства, программист должен "определенным образом инициировать режим работы дисплейного адаптера". В графическом режиме работой дисплейного адаптера управляет графический драйвер.
Драйвер – это специальная программа, которая управляет техническими средствами компьютера. Для всех существующих типов адаптеров фирма Borland разработала графические драйверы (они имеют расширение .bgi и находятся на диске в одноименном подкаталоге).
Необходимые процедуры и функции для работы с графикой собраны стандартном модуле – Graph.
Инициализация графики производится с помощью процедуры InitGraph, которая имеет вид:
InitGraph(GraphDriver, GraphMode, Path);
где переменные GraphDriver и GraphMode имеют тип Integer, а переменная Path имеет тип String.
То, что записано в скобках, называется параметрами вызова процедуры (подробнее с данным вопросом мы ознакомимся позднее в теме “Процедуры и функции”), а сейчас рассмотрим параметры GraphDriver, GraphMode и Path.
GraphDriver – целая переменная, определяющая тип драйвера. Процедура загружает драйвер в оперативную память и переводит адаптер в графический режим работы. Тип драйвера должен соответствовать типу графического адаптера. Для указания типа драйвера в модуле предопределены следующие константы:
CGA | EGA | EGAMono | HercMono | VGA | |||||
MCGA | EGA64 | IBM8514 | ATT400 | PC3270 |
Detect = 0;
Целая переменная GraphMode задает режим работы графического адаптера. Многие адаптеры могут работать в нескольких режимах. Например, переменная GraphMode в момент обращения к InitGraph может иметь одно из следующих значений для адаптера VGA:
VGALo = 0; VGAMed = 1; VGAHi = 2;
Примечание: Более подробно о переменной Mode можно узнать в справочном руководстве по TurboPascal.
Теперь представьте такой вариант: Вам нужно написать программу на языке Pascal с использованием графических возможностей компьютера. Хорошо, если это – программа для компьютера с известным адаптером. А если нет, как действовать в этом случае? Выход один. Если нам неизвестен тип адаптера или программа должна работать с любым адаптером, необходимо обращаться к InitGraph с запросом на автоматическое определение драйвера.
Это происходит следующим образом: переменной GraphDriver присваиваем значение detect. В этом случае компьютер сам определит необходимый драйвер и подберет наилучший режим.
Program Primer1;
Uses
Graph;{Подключение модуля библиотеки графических процедур}
Var
GraphDriver,
GraphMode : integer;
Begin
GraphDriver := detect; {автоопределение типа драйвера }
InitGraph(GraphDriver, GraphMode, Path);
{Инициализация графического режима}
. . .
. . .СloseGraph;{Закрытие графического режима}
End.
Для получения графического изображения нужно заставить светиться заданным цветом определенную группу пикселей (точек). Это можно делать в программе, но ваша работа тогда станет очень трудоёмкой. Чтобы облегчить труд программиста существует модуль Graph, в котором содержиться 79 полезных процедур и функций, десятки стандартных констант и типов данных (например, процедуры рисования линии, окружности и др.). Чтобы воспользоваться этим модулем нужно сначала его подключить. Для этого в программе записывают строчку: Uses Graph.
Условно весь модуль Graph можно подразделить на несколько функциональных групп по выполняемым действиям. Рассмотрим эти группы (внутри групп взяты основные функции, необходимые нам для первоначального ознакомления с графикой):
1) Инициализация графики, подготовительные работы, управление цветом, закрытие режима:
InitGraph | установление (инициализация) графического режима работы |
CloseGraph | завершение работы с графикой |
DetectGraph | определение драйвера |
FloodFill | заливка замкнутого контура выбранным типом и цветом палитры |
RestoreCRTMode | возврат в текстовый режим |
SetBkColor | выбор и установка нового цвета закраски фона |
SetColor | выбор и установка нового текущего цвета |
SetFillStyle | выбор и установка нового шаблона и цвета заполнения |
2) Процедуры и функции для управления курсором и видеостраницами:
ClearDevice | очистка текущего устройства вывода |
ClearViewPort | очистка текущего окна |
GetMaxX | получение максимально доступной координаты по оси X |
GetMaxY | получение максимально доступной координаты по оси Y |
GetPixel | получение текущего цвета точки экрана |
GetX | получить значение координаты X |
GetY | получить значение координаты Y |
MoveRel | переместить курсор из данной текущей точки на заданное приращение. |
MoveTo | переместить курсор из данной текущей точки в заданную точку |
3). Процедуры и функции для работы с "графическими примитивами":
Arc | Рисует дугу |
Bar | Рисует полосу |
Bar3D | Рисует трехмерную полосу |
Circle | Рисует окружность |
DrawPoly | Рисует многоугольник |
Ellipse | Рисует эллиптическую дугу или эллипс |
FillEllipse | Рисует заполненный эллипс |
FillPoly | Заполняет многоугольник |
Line, LineRel, LineTo | Рисует линию |
Rectangle | Рисует прямоугольник |
Sector | Рисует сектор эллипса |
PutPixel | Рисует точку |
Дата добавления: 2015-05-16; просмотров: 1041;