Краски, палитры, заполнения
Процедура Fill Poly
Обводит линией и закрашивает замкнутый многоугольник. Заголовок:
Procedure FillPoly(N: Word; var Coords);
Здесь:
- N – количество вершин замкнутого многоугольника;
- Coords – переменная типа PointType, содержащая координаты вершин.
Координаты вершин задаются парой значений типа Integer: первое определяет горизонтальную, второе – вертикальную координаты. Для них можно использовать следующий определенный в модуле тип:
type PointType = record х, у: Integer end;
Стиль и цвет линии контура задаются процедурами SetLineStyle и SetColor, тип и цвет заливки – процедурой SetFillStyle.
В следующем примере на экран выводятся случайные закрашенные многоугольники.
Uses Graph, CRT; var d, r, e: Integer; p: array [1..6] of PointType; n, k: Word; begin {Инициируем графику} d: = Detect; InitGraph(d, r, ' '); e: = GraphResult; if e <> grOk then WriteLn(GraphErrorMsg(e)) else begin {Создаем окно в центре экрана} d: = GetMaxX div 4; r: = GetMaxY div 4; Rectangle(d,r,3*d,3*r); SetViewPort(d+l,r+l,3*d-l,3*r-l,ClipOn); {Цикл вывода случайных закрашенных многоугольников} repeat {Выбираем случайный цвет и узор) SetFillStyle(Random(12),Random(succ(GetMaxColor))); SetColor (Random(succ(GetMaxColor))); {Назначаем случайные координаты} n: = Random (4) + 3; for k: = 1 to n do with p[k] do begin x: = Random (GetMaxX div 2); у: = Random (GetMaxY div 2) end; FillPoly (n, p) {Выводим и закрашиваем} until KeyPressed; if ReadKey=#0 then k: = ord(ReadKey); CloseGraph end end.
Процедура FillEllipse
Обводит линией и заполняет эллипс. Заголовок:
Procedure FillEllipse(X,Y,RX,RY: Integer);
Здесь:
- X, Y – координаты центра;
- RX, RY – горизонтальный и вертикальный радиусы эллипса в пикселях.
Эллипс обводится линией, заданной процедурами SetLineStyle и SetColor, и заполняется с использованием параметров, установленных процедурой SetFillStyle.