Hi Moritz,
die wahrscheinlich beste Möglichkeit ist mit Trig-Funktionen zu arbeiten.
Delphi-Quellcode:
function DegToRad(Deg: Real): Real;
begin
Result := Deg*Pi/180;
end;
procedure ZeichneNEck(xm, ym, r: Real; n: Integer);
var
i: Integer;
xn, yn: Real;
begin
Canvas.MoveTo(Round(xm+r),Round(ym));
for i := 1 to n do begin
xn := xm + Round(r*cos(DegToRad(i*360/n)));
yn := ym - Round(r*sin(DegToRad(i*360/n)));
Canvas.LineTo(Round(xn), Round(yn));
end;
end;
ist ungetestet, der Ansatz sollte aber richtig sein
Greetz
alcaeus
[edit]Alle Fehler korrigiert, müsste funktionieren.[/edit]