Построение прямоугольников
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 );