Hat jemand eine Idee für eine Polygon.Inflate?
So gehts schonmal nicht
Delphi-Quellcode:
procedure TPolygon.Inflate(const Top, Bottom, Left, Right: double); // positve Werte verkleinern;
var
I: integer;
dX, dY, vX, vY: double;
P: TFloatPoint;
Line: TFLoatLine;
begin
P := Center;
for I := 0 to FCount - 1 do
begin
dX := FItems[I].X - P.X;
dY := FItems[I].Y - P.Y;
vX := 0;
vY := 0;
if (dX > 0) and (dY > 0) then
begin
vX := Right;
vY := Bottom;
end
else
if (dX < 0) and (dY > 0) then
begin
vX := -Left;
vY := Bottom;
end
else
if (dX < 0) and (dY < 0) then
begin
vX := -Left;
vY := -Top;
end
else
if (dX > 0) and (dY < 0) then
begin
vX := Right;
vY := -Top;
end;
FItems[I].X := FItems[I].X + vX;
FItems[I].Y := FItems[I].Y + vY;
end;
end;