Изображение холста Delphi... нарисовать область (треугольник, прямоугольник, многоугольники)
У меня есть переменное количество точек на холсте.
Иногда его четыре раза три раза, или 6.
Есть функция, которая может рисовать область внутри?
Благодарим вас за помощь.
Ответ 1
Используйте функцию TCanvas.Polygon. Объявите массив TPoint, установите его длину в счетчик ваших точек, укажите каждую координату точки (необязательно измените ручку холста и/или кисть ) и передать этот массив функции TCanvas.Polygon. Как в этом скучном примере:
В дополнение к превосходному ответу TLama, это случай, когда вы можете получить довольно удобный синтаксис, используя конструкцию открытого массива. Рассмотрим вспомогательную функцию
procedure DrawPolygon(Canvas: TCanvas; const Points: array of integer);
var
arr: array of TPoint;
i: Integer;
begin
SetLength(arr, Length(Points) div 2);
for i := 0 to High(arr) do
arr[i] := Point(Points[2*i], Points[2*i+1]);
Canvas.Polygon(arr);
end;
определяется и реализуется раз и навсегда. Теперь вы можете сделать просто