Построение простых графических изображений в среде програмирования Borland Pascal, страница 3

uК процедурам построения криволинейных фигур относятся следующие:

     Arc                                     –построение дуги окружности;

     Circle                                 –построение окружности;

     Ellipse                                –построение дуги эллипса;

     FillEllipse                           –построение окрашенного эллипса;

     GetArcCoords                    –получение координат последней дуги;

     PieSlice                              –построение закрашенного сектора круга;

     Sector                                 –построение закрашенного сектора эллипса;

uК процедурам  и функциям работы с текстом относятся следующие:

     GetTextSettings                  –получение характеристик текста;

     OutText                              –вывод последовательности символов;

     OutTextXY                          –вывод последовательности символов начиная с заданных координат;

     SetTextJustify                      –задание способов выравнивания текста;

     SetTextStyle                        –задания типа начертания шрифта и коэффициентов увеличения символов;

     SetUserCharSize                –задание высоты и ширины символов;

     TextHieght                          –получение высоты строки в пикселях;

     TextWidth                           –получениях ширины строки в пикселях;

uК процедурам  и функциям обмена с памятью относятся следующие:

GetImage                           –сохранение изображения в буфере;

PutImage                           –вывод изображения из буфера на экран;

ImageSize                          –получение размера требуемой для изображения памяти;

Процедура

Назначение процедуры и формальных параметров

Arc (X, Y: integer; StAngle, EndAngle, Radius: word)

строит дугу окружности текущим цветом с учетом масшабов по осям. Где:

X, Y–координаты центра дуги;

StAngle–угол до начальной точки дуги, отсчитываемый против часовой стрелки от горизонтальной оси, направленной слева направо;

EndAngle–угол до конечной точки дуги, отсчитываемый аналогично;

Radius–радиус дуги;

Bar (X1, Y1, X2, Y2: integer);

Строит прямоугольник, закрашенный текущим орнаментом и цветом заполнения. Где:

X1, Y1, X2, Y2–координаты левого верхнего и правого нижнего углов прямоугольника;

Bar3D (X1, Y1, X2, Y2: integer; Depth: word; Top: boolean);

Строит параллелепипед, закрашенный текущим орнаментов и цветом заполнения. Где:

X1, Y1, X2, Y2-координаты левого верхнего и правого нижнего углов передней грани;

Depth–ширина боковой грани (отсчитывается по горизонтали);

Top–признак включения верхней грани (если TRUE – верхняя грань вычерчивается, в противном случае верхняя грань не отображается);

Circle (X, Y: integer; Radius: word);

Строит окружность текущим цветом с учетом масштабов по осям. Где:

X, Y–координаты центра окружности;

Radius–радиус окружности;

ClearDevice;

Очищает графический экран, закрашивает его в цвет фона, устанвливает указатель текущей позиции в точку с координатами (0, 0).

ClearViewPort;

Очищает выделенное окно графического экрана, закрашивает его в цвет фона, устанавливает указатель текущей позиции в левый верхний угол окна с координатами (0, 0).

CloseGraph;

Завершает работу в графическом режиме и осуществляет переход в текстовый режим.

DetectGraph (var GraphDriver, GraphMode: integer);

Проверяет имеющееся оборудование и определяет какой графический драйвер и режим можно использовать. Где:

GraphDriver-переменная , в которую процедура помещает код требуемого драйвера;

GraphMode-переменная, в которую процедура помещает код графического драйвера или (–2) в случае аварийной ситуации.   В случае аварийной ситуации (у компьютера нет графического адаптера или нет драйвера для него) процедура устанавливает код ошибки (-2).

Ellipse(X,Y:integer;StAngle,EndAngle:word;Xradius,YRadius:word);

Рисует дугу эллипса текущим цветом. Где:

X,Y-координаты центра эллипса;

StAngle-угол до начальной точки эллипса, отсчитываемый против часовой стрелки от горизонтальной оси, направленной слева направо.

EndAngle-угол до начальной точки эллипса, отсчитываемый аналогично.

Xradius, Yradius-горизонтальная и вертикальная полуоси эллипса.

FillEllipse(X,Y:integer;Xradius,YRadius:word);

Строит эллипс, закрашенный текущим орнаментом и цветом заполнения. Где:

X,Y-координаты центра эллипса;

Xradius,Yradius-горизонтальная и вертикальная полуоси эллипса.

FloodFill(X,Y:integer;Border:word);

Закрашивает область, ограниченную непрерывной линией, текущим орнаментом и цветом заполнения. Где:

X,Y-координаты любой точки внутри закрашиваемой линии;

Border-цвет линии, до которой проводится закрашивание.

В случае аварийной ситуации( в процессе закраски) процедура устанавливает код ошибки (-7). Процедуру нельзя применять при использовании графического драйвера IBM8514.BGI.

InitGraph( var Gd:integer; var Gm:integer;GraphPath:string);

Инициализирует графическую систему, устанавливает графический режим, устанавливает исходные значения указателя, палитры, цвета и т.д. Где:

GraphDriver-переменная, в которую необходимо записать код требуемого графического драйвера или нуль, если требуется автоматическое определение драйвера;

GraphMode-переменная,в которую процедура помещает код графического режима

GraphPath-строка, содержащая путь к графическому драйверу( если строка пуста-то драйвер находится в текущем каталоге).

В случае аварийной ситуации процедура устанавливает код ошибки:

(-2)-нет графического адаптера;

(-3)-нет драйвера устройства,

(-4)-ошибка в драйвере,

(-5)-нет памяти для загрузки драйвера,

(-10)-недопустимый режим выбранного драйвера.

Line(X1,Y1,X2,Y2:integer);

Проводит линию текущего цвета между точками с координатами (X1,Y1) и (X2,Y2) без изменения значения указателя координат.

LineRel(Dx,Dy);

Проводит линию текущего цвета из текущей позиции в точку, сдвинутую относительно исходной позиции на величины  Dx и Dy. Где:

Dx,Dy-смещение координат точки конца линии по отношению к исходным координатам.

LineTo(X,Y:integer);

Проводит линию текущего цвета из текущей позиции в точку с заданными координатами(X,Y).

MoveRel(Dx,Dy);

Перемещает указатель координат на заданное расстояние (Dx,Dy) по отношению к его предыдущему  положению (точка на экране не высвечивается). Где:

Dx,Dy-смещение текущего указателя относительно его старого положения.

MoveTo(X,Y:integer);

Перемещает текущий указатель координат в точку окна с координатами(X,Y).Точка на экране не высвечивается.

OutTextXY(X,Y:integer;TextString:string);

Выводит на экран последовательность символов, начиная с заданных координат (X,Y).Текущая позиция после выполнения процедуры не изменяется. Если выводимый текст не помещается в графическое окно, он либо вообще не высвечивается (в случае “грубого” шрифта, принятого по умолчанию), либо высвечивается частично (в случае “гладких “ шрифтов). Где:

X, Y–исходные координаты;

TextString–выводимый текст.

PutPixel( X, Y:integer;Pixel:word);

Закрашивает пиксель с заданными координатами (X, Y) в цвет Pixel.

SetAspectRatio (Xasp, Yasp:word);

Меняет относительный масштаб изображения по горизонтали и вертикали. Где:

Xasp,Yasp–задаваемые масштабы по горизонтали и вертикали.

SetBkColor (Color:word);

Устанавливает цвет фона экрана. Где:

Color–устанавливает цвет (соответствует номеру цвета в палитре или черный, если Color= 0).

SetColor (Color:word);

Устанавливает текущий цвет, которым будут изображаться контуры фигур и тексты. Где:

Color–устанавливаемый цвет.

SetFillStyle (Pattern:word; Color:word);

Задает стандартный орнамент и цвет заполнения фигур. Где:

Pattern–задаваемый стандартный орнамент;

Color–цвет заполнения фигур.

В случае аварийной ситуации (недопустимые входные данные) процедура устанавливает код ошибки (-11), а текущий орнамент и цвет не изменяются.

SetLineStyle( LineStyle:word; Pattern:word; Thickness:word);

Задает текущие параметры линии ( стиль, шаблон и толщину).

SetPallete (ColorNum:word; Color:shorting);

Меняет цвет одной компоненты в палитре. Где:

ColorNum–номер компоненты палитры;

Color–задаваемый цвет.

В случае аварийной ситуации (неправильные входные параметры) процедура устанавливает код ошибки (-11) и никаких изменений в палитре не происходит.

SetTextStyle (Font:word;Direction:word;CharSize:word);

Устанавливает текущие тип шрифта, направление текста и размер символов. Где:

Font–тип шрифта;

Direction–направление текста;

CharSize-размер символов.

В случае аварийной ситуации проуедура устанавливает код ошибки

(-8)-не найден файл со шрифтом;

(-9)-нет памяти для загрузки шрифта;

(-11)-ошибка графической системы;

(-12)-ошибка ввода-вывола графической системы;

(-13)-ошибка в файле со шрифтом;

(-14)-неверный номер шрифта.

SetUserCharSize (MultX, DivX, MultY, DivY:word);

Задает коэффициенты увеличения ширины (MultX,DivX) и высоты (MultY,DivY) штриховых шрифтов.

SetViewPort (X1,Y1,X2,Y2:integer; Clip:boolean);

Задает размеры окна для вывода графической информации и перемещает указатель текущей позиции в левый верхний угол с координатами (0,0). Где:

X1, Y1-координаты левого верхнего угла окна;

X2, Y2-координаты правого нижнего угла окна;

Clip–ограничитель фигур. Если Clip=True, то все построения проводятся только в пределах окна, в противном случае части фигур могут выходть за пределы окна. Если не выполняются условия соотношений координат окна или заданы недопустимые координаты, окно не выделяется и формируется код ошибки (-11).

SetVisualPage (Page:word);

Устанавливает номер отображаемой на экране страницы. Где:

Page–номер страницы (нумерация начинается с 0).

SetWriteMode (WriteMode:integer);

Устанавливает режим построения линии (действует только при вызове процедур Line, LineRel, LineTo и др). Где:

WriteMode–определяемый режим построения линии.