Цель работы: получить навыки по работе с графическим режимом в среде Turbo Pascal.
Теоретическая часть:
Стандартное состояние компьютера после запуска Турбо Паскаля - текстовый режим. Для того, чтобы использовать его графические средства, необходимо «определенным образом инициировать режим работы дисплейного адаптера». В графическом режиме работой дисплейного адаптера управляет графический драйвер.
Драйвер - это специальная программа, которая управляет техническими средствами компьютера.
Необходимые процедуры и функции для работы с графикой собраны стандартном модуле - Graph.
Инициализация графики производится с помощью процедуры InitGraph, которая имеет вид:
InitGraph (GraphDriver, GraphMode, Path);
где переменные GraphDriver и GraphMode имеют тип Integer, а переменная Path имеет тип String.
Любая информация при работе в графическом режиме на экране монитора представлена совокупностью светящихся точек - пикселей, которые определяются цветом и координатами - положением относительно левого верхнего угла экрана с координатами (0,0).
Дисплей может работать в нескольких графических режимах, каждому из которых соответствует свой формат изображения, т. е. разрешающая способность (количество пикселей по горизонтали и вертикали) экрана и набор используемых цветов.
Чтобы точно строить изображение на экране, нужно сначала нарисовать, как это должно выглядеть на бумаге. Для этого начертите систему координат графического режима.
Отсчет начинается с верхнего левого угла с координатами (0;0), значение Х - столбец, отсчет слева направо; значение Y - строка, отсчет сверху вниз.
После инициализации графического режима указатель стоит в точке (0;0). Чтобы переместить его в нужное место используют следующие процедуры:
Процедура
Значение
MoveTo (X, Y)
перемещает текущий указатель в точку с координатами (X,Y)
MoveRel (dX, dY)
перемещает текущий указатель по горизонтали на расстояние, равное dX пикселям, а по вертикали на расстояние, равное dY пикселям
PutPixel(X, Y, Color)
процедура выводит точку заданного цвета Color в точку с координатами (X, Y)
Line (X1, Y1, X2, Y2)
рисуется линия от точки (X1, Y1)
до точки (X2, Y2)
LineTo (X, Y)
рисуется линия из точки, где находится в данный момент курсор в точку (X, Y)
Процедура
Значение
LineRel (dX,dY)
рисуется линия из точки, где находится в данный момент курсор
(X, Y) в точку (X+dX,Y+dY)
SetColor (Color)
устанавливает текущий цвет для выводимых линий и символов
Circle (X, Y, R)
Рисуется окружность в центре (X, Y) c радиусом R
Arc (X, Y, BegA, EndA, R)
Рисуется дуга (часть окружности) с координатами центра (X, Y), с радиусом R, которая начинается от угла BegA до угла EndA в полярной системе координат
Ellipse
(X, Y, BegA, EndA , хR, yR)
рисуется дуга эллипса, у которого центр находится в точке (X, Y), BegA - начальный угол, EndA - конечный угол, хR - радиус по горизонтальной оси, yR - радиус по вертикальной оси
устанавливает стиль линий.
Type - тип линии, Тип линии может быть задан с помощью одной из следующих констант:
0 - непрерывная линия; 1 - линия из точек; 2 - линия из точек и тире; 3 - пунктирная линия; 4 – линия, определяемая пользователем.
Pattern - образец линии. Учитывается только для линий, вид которых определяет пользователь. Таким образом можно задать линии в виде отрезков длиной до 16 пиксель.
Thick - толщина линии.
1 - толщина в один пиксель; 3 - толщина в три пикселя
SetFillStyle (Pattern, Color)
определяет стиль заполнения и цвет заполнения.
Значения Pattern можно взять из следующей таблицы:
Константа
Код
Маска-заполнение
EmptyFill
цветом фона
SolidFill
текущим цветом
LineFill
символами - -, цвет - Color
LtSlashFill
символами //норм. толщины, цвет - Color
SlashFill
символами //удвоенной толщины, цвет - Color
BkSlashFill
символами \\удвоенной толщины, цвет - Color
LtBkSlashFill
символами \\норм. толщины, цвет - Color
HatchFill
вертикально-горизонтальная штриховка тонкими линиями, цвет - Color
XhatchFill
штриховка крест-накрест по диагонали “редкими” тонкими линиями, цвет - Color
InterLeaveFill
штриховка крест-накрест по диагонали “частыми” тонкими линиями, цвет - Color
WideDotFill
“редкие” точки
CloseDotFill
“частые” точки
FloodFill(X, Y, ColorBorder)
процедура, которая позволяет заполнить замкнутую область выбранным стилем и цветом закраски.
- (X, Y) являются координатами точки, лежащей обязательно внутри закрашиваемой области;
- ColorBorder - параметр, обозначающий цвет, которым нарисована закрашиваемая фигура (так называемый цвет “бордюрчика”);
- фигура должна быть начерчена одним цветом;
- фигура должна быть замкнута.
SetBkColor(Color)
процедура, устанавливающая цвет фона
ClеarDeviсe
очищает экран и устанавливает курсор в позицию (0,0)
GraphDefaults
cбрасывает заданные пользователем параметры графического режима и устанавливает исходные
Для задания цвета точки можно использовать как слово на английском языке, так и цифру из следующей таблицы: