3.7. Построение прямоугольников
Для построения прямоугольных фигур имеется несколько процедур. Первая из них – процедура вычерчивания одномерного прямоугольника:
Rectangle( X1, Y1, X2, Y2 ),
где X1, Y1 – координаты верхнего левого угла, X2, Y2 – координаты правого нижнего угла прямоугольника. Ниже в качестве примера приведен фрагмент, который выводит на экран 100 разноцветных прямоугольников произвольной высоты:
FOR
i:=1 TO 100 DO BEGIN
SetColor( Random(15) ); { “случайный” цвет }
Rectangle( 200, Random(300), 250, 300 ); { i-й прямоугольник }
Delay(100); { задержка 100 мс }
ClearDevice { очистка экрана }
END;
Для построения закрашенных прямоугольников используется процедура:
Bar( X1, Y1, X2, Y2 ),
где параметры X1, Y2, X2 и Y2 имеют то же смысл, что и в процедуре Rectangle.
Цвет и стиль закраски устанавливается процедурой
SetFillStyle( Pattern, Color ),
где параметр Pattern определяет стиль (шаблон) заливки, а параметр Color – ее цвет. Возможные значения параметра Pattern приведены в таблице 3.
Таблица 3. Стили заливки
Описание стиля |
Константа |
Описание стиля |
Константа |
Заполнение цветом фона (SetBkColor) |
EmtyFill = 0 |
Вертикально- горизонтальная штриховка |
HatchFill = 7 |
Заполнение текущим цветом (SetColor) |
SolidFill = 1 |
Разреженная штриховка крест-накрест |
XhatchFill = 8 |
Заполнение символами - - |
LineFill = 2 |
Частая штриховка крест-накрест |
InterLeaveFill = 9 |
Заполнение символами // нормальной толщины |
LtslashFill = 3 |
Заполнение разреженными точками |
WideDotFill = 10 |
Заполнение символами // удвоенной толщины |
SlashFill = 4 |
Заполнение частыми точками |
CloseDotFill = 11 |
Заполнение символами \\ нормальной толщины |
BkSlashFill = 5 |
Пользовательский стиль |
UserFill = 12 |
Заполнение символами \\ удвоенной толщины |
LtBkSlashFill = 6 |
Для построения “объемных” закрашенных прямоугольников используется процедура:
Bar3D( X1, Y1, X2, Y2, Depth, Top ).
Тип и цвет заливки устанавливается процедурой SetFillStyle. Параметр Depth определяет глубину трехмерного контура. Чаще всего его значение равно четверти ширины прямоугольника:
Depth := (X2-X1) div 4;
Параметр Top определяет, строить над прямоугольником вершину (True) или нет (False). Например:
SetFillStyle( XhatchFill, Red );
Bar3D( 10, 10, 50, 100, 10, True );