Многоугольники можно рисовать самыми различными способами, например с помощью процедуры Line. Однако в Турбо Паскале имеется процедура DrawPoly, которая позволяет строить любые многоугольники линией текущего цвета, стиля и толщины. Она имеет формат DrawPoly( a: word, var PolyPoints)
Параметр PolyPoints является нетипизированным параметром, который содержит координаты каждого пересечения в многоугольнике. Параметр а задает число координат в PolyPoints. Необходимо помнить, что для вычерчивания замкнутой фигуры с N вершинами нужно передать при обращении к процедуре DrawPoly N+1 координату, где координата вершины с номером N будет равна координате вершины с номером 1.
Проиллюстрируем на примере:
program tr; {Программа вычерчивает в центре экрана треугольник красной линией}
uses crt, graph;
var gd, gm: integer;
pp: array[1..4] of PointType;
xm, ym, xmaxD4, ymaxD4:word;
begin
gd:= detect;
Initgraph(gd, gm, ‘ c/bp’);
xm:=GetmaxX; ym:=GetmaxY;
xmaxD4:=xm div 4;
ymaxD4:= ym div 4;
{определение координат вершин}
pp[1].x := xmaxD4;
pp[1].y := ymaxD4;
pp[2].x := xm - xmaxD4;
pp[2].y := ymaxD4;
pp[3].x := xm div 2;
pp[3].y := ym - ymaxD4;
pp[4] :=pp[1];
SetColor(4); {цвет для вычерчивания}
DrawPoly(4,pp); {4 – количество пересечений +1}
readln;
CloseGraph
end.
В результате работы программы на экране появится красный треугольник на черном фоне. Изменить фон внутри треугольника можно с помощью процедуры FillPoly(a: word, var PolyPoints). Значения параметров те же, что и в процедуре DrawPоly. Действие тоже аналогично, но фон внутри многоугольника закрашивается. В качестве примера нарисуем в левой верхней части экрана четырехугольную звезду зеленого цвета: