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

1.2.Вывод многоугольников

Процедура Rectangle(x1,y1,x2,y2:integer); рисует прямоугольник, концы диагонали которого имеют координаты (x1,y1) и (x2,y2) соответственно. Рисование производится текущим цветом и в соответствии с текущим образцом линий.

Процедура Bar(x1,y1,x2,y2:integer); штрихует прямоугольник (не очерчивая его границы) в соответствии с текущим образцом и цветом штриховки.

x1,y1 - координаты одного конца диагонали прямоугольника;

x2,y2 - координаты другого конца диагонали прямоугольника.

Нарисовать закрашенный прямоугольник можно и по-другому: сначала нарисовать прямоугольник процедурой Rectangle, а затем закрасить его с помощью процедуры FloodFill.

Процедура FloodFill(x,y:integer;Border:word); закрашивает ограниченную область, внутри которой находится точка с координатами (x,y). Закраска производится в соответствии с текущим цветом и образцом.

Если заданная точка находится внутри области, то область закрашивается; если точка находится вне области, то закрашивается внешняя часть области. Параметр Border задает цвет границы области. Точки внутри области закраски, цвет которых отличается от цвета, заданного в параметре Border, закрашиваются.

Произвольный многоугольник выводится процедурой

FillPoly (NumPoints:word;var PolyPoints);

NumPoints - число вершин многоугольника;

PolyPoints - массив координат вершин многоугольника, элементами массива являются записи типа PointType; число элементов массива должно быть не менее NumPoints.

Закраска осуществляется текущим цветом и в соответствии с текущим образцом.

Цвет и образец закраски устанавливается процедурой

SetFillStyle(Pattern:word; Color:word);

Pattern - параметр, устанавливающий образец закраски;

Color - параметр, устанавливающий цвет закраски.

Виды закраски определяется константами.

Например: SolidFill=1 - сплошная заливка;

HatchFill=7 - редкой штриховкой;

Возможные цвета и соответствующие им константы выбираются из справочной таблицы. По умолчанию выбирается закраска, заполняющая всю область сплошным цветом, а в качестве цвета - максимальный цвет, содержащийся в заданной палитре. Если параметр Pattern имеет значение UserFill, то образец закраски должен быть предварительно установлен процедурой SetFillPattern.

Процедура SetFillPattern(Pattern:FillPatternType; Color:word);

устанавливает образец и цвет закраски.

Параметр Pattern задает битовый шаблон образца закраски. Тип FillPatternType определен следующим образом:

type FillPatternType=array[1..8] of byte;

Образец закраски формируется в соответствии с байтовыми значениями, содержащимися в массиве Pattern. Массив шаблона состоит из 8-ми элементов - 8-ми байтов, причем каждый байт соответствует 8-ми точкам строки экрана. Таким образом, создается образец закраски для прямоугольника размером 8*8 точек, который при закраске повторяется. Если бит в байте шаблона равен 1, то соответствующая точка растра будет высвечена на экране. Образцы, определяемые пользователем, позволяют создавать закраски, отличающиеся от предварительно определенных.

Пример формирования шаблона для образца закраски:

Двоичное значение Шестнадцатеричное значение

11001100 = $CC (1-ый байт)

00110011 = $33 (2-ой байт)

11001100 = $CC (3-ий байт)

00110011 = $33 (4-ый байт)

00110011 = $33 (5-ый байт)

11001100 = $CC (6-ой байт)

00110011 = $33 (7-ой байт)

11001100 = $CC (8-ой байт)

Параметр Color определяет цвет закраски.