Einzelnen Beitrag anzeigen

Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#33

AW: Polygon.Inflate

  Alt 7. Jul 2014, 20:07
Das hab ich mal wieder nicht verstanden?
Ich lass es jetzt erst mal so. Der Benutzer kann ja dann mehrere Margins in das Polygon legen. Vermutlich ist es auch gar nicht möglich so wie ich wollte. Bei AutoCad muß man beim Ausrunden ja auch einen Bezugspunkt angeben.
Delphi-Quellcode:
procedure TPolygon.Inflate(const Value: double);
var
  I, J: integer;
  C: TFloatPoint;
  Line: TFloatLine;
  Lines: TFloatLines;
begin
  Lines := TFloatLines.Create;
  try
    for I := 0 to FCount - 1 do
    begin
      J := Next(I);
      Line.P1 := FItems[I];
      Line.P2 := FItems[J];
      Line.ShiftUV(0, Value);
      Lines.Add(Line);
    end;
    Clear;
    for I := 0 to Lines.Count - 1 do
    begin
      J := Lines.Next(I);
      if Lines.Item[I].IntersectLines(Lines.Item[J], C) then
        Add(C);
    end;
  finally
    Lines.Free;
  end;
end;
  Mit Zitat antworten Zitat