Язык:
Русский
English
FillPoly (процедура) (модуль Graph)
Рисует закрашенный многоугольник.
Объявление
Procedure FillPoly(NumPoints : Word; Var PolyPoints);
Режим
Real, Protected
Замечания
Параметр PolyPoints — нетипизированный параметр, который содержит координаты точек, образующих многоугольник. NumPoints содержит число координат в PolyPoints. Каждый компонент PolyPoints состоит из двух значений типа Integer — X и Y. Если бы семантика Turbo Pascal позволяла такие конструкции, PolyPoints имел бы тип array[1 .. NumPoints] of PointType или array[1 .. 2 * NumPoints] of Integer, однако язык это не предусматривает, поэтому параметр нетипизирован. Заметьте, что для рисования замкнутой фигуры с N гранями, в параметре PolyPoints должно содержаться N+1 компонентов (координаты начальной и конечной точек должны совпадать).
Процедура FillPoly вычисляет все горизонтальные пересечения, а затем закрашивает многоугольник, используя текущий стиль и цвет закраски, определённые с помощью процедур SetFillStyle и SetFillPattern. Контур многоугольника выделяется текущим цветом и типом линии, установленными при обращении к процедурам SetLineStyle и SetColor.
Если при заполнение многоугольника происходит ошибка, то в переменной GraphResult возвращается значение grNoScanMem.
Ограничения
Нужно быть в графическом режиме.
См. также
Пример
Язык:
Русский
English
{ Пример программы для процедуры FillPoly }
const Triangle : array[1 .. 3] of PointType =
((X : 50; Y : 100),
(X : 100; Y : 100),
(X : 150; Y : 150));
var
Gd, Gm : Integer;
begin
Gd := Detect;
InitGraph(Gd, Gm, 'X:\BP'); { Путь к BGI-драйверам }
if GraphResult <> grOk then
Halt(1);
FillPoly(SizeOf(Triangle) div SizeOf(PointType), Triangle);
ReadLn;
CloseGraph;
end.
Более сложный пример: Домик в Паскале