Причем, двоичное число разбивается на тетрады цифр с конца числа, а шестнадцатеричное число получается заменой каждой тетрады соответствующей цифрой с добавлением в начале числа символа "$".
Орнамент удобно задавать, используя переменные с начальным значением (типизированные константы), например:
Bar3d(X1, Y1, X2, Y2, d, t);-построить параллелепипед с заполненной
передней гранью. Координаты углов: (X1, Y1), (X2, Y2), глубина "d". Переменная "t" типа boolean задает вывод верхней грани. При t=TopOn(true) верхняя грань показывается, при t=TopOff (false) - нет.
FillEllipse(X, Y, RX, RY);- построитьзаполненный эллипсс центром в
точке (X, Y) и радиусами ( полуосями ) :
RX - по горизонтали, RY - по вертикали.
Sector(X, Y, A1, A2, RX, RY);- построитьзаполненный сектор эллипса.
A1 и A2 - начальный и конечный углы (в градусах), отсчитываемые против часовой стрелки относительно направления оси Х. Аналог процедуры: Ellipse(X, Y, A1, A2, RX, RY); строит сектор эллипса без автоматического заполнения.
PieSlice(X, Y, A1, A2, R);- построить заполненный сектор круга с
центром в точке (X, Y) и радиусом R. Аналог процедуры:Arc(X, Y, A1, A2, R); строит дугу окружности.
FillPoly(N, M);- заполнить произвольную плоскую фигуру с границей,
описанной массивом точек. N - число точек границы,
М - параметр - переменная типа PointType, определяемая в модуле Graph в виде:
TYPE PointType = Record x, y: Integer End;В программе массив можно описать операторами: Const N=100; Var M: array[1..N] of PointType;
Присвоение значений можно провести в цикле:
For i:=1 to 3 do begin M[i].x:=random(95); M[i].y:=random(95) end;
Приведем пример программы, выводящей два прямоугольника с орнаментами пользователя (bukva_Y и Red_50), а затем демонстрирующей набор стандартных орнаментов на передней грани параллелепипедов: