Leider stimmt da irgendwas nicht... Möchte ich ein Viereck, bekomme ich ein Dreieck, möchte ich ein Fünfeck, bekomm ich irgendwelchen Kappes...
Ich leide gerade unter einer heftigen Denkblockade und poste deswegen mal meinen Quellcode, vielleicht findet ihr den Fehler:
Delphi-Quellcode:
procedure TForm1.generate;
var i,x,y,d : Integer;
myangle : Integer;
newx, newy: Integer;
begin
img.Width := spinedit7.Value;
img.Height := spinedit8.Value;
img.Canvas.brush.Color := panel3.Color;
img.Canvas.Rectangle(-1,-1,img.Width+1,img.Height+1);
img.Canvas.Pen.Color := panel4.Color;
x := (img.Width div 2); //x,y = Mittelpunkt
y := (img.Height div 2);
d := y - spinedit3.Value - spinedit4.Value; //Halber Durchmesser
myangle := (360 div spinedit1.Value); (Spinedit1.value ist unser N (N-Eck)
newx := x + (d*round(cos(myangle*0)));
newy := y + (d*round(sin(myangle*0)));
//Angular
for i := 1 to spinedit1.Value do
begin
img.Canvas.MoveTo(newx,newy);
newx := x + (d*round(cos(myangle*i)));
newy := y + (d*round(sin(myangle*i)));
img.Canvas.LineTo(newx,newy);
end;
end;