Nochmals vielen Dank an alle, ich habe jetzt versucht meine Version durchzubringen, ich wollte es unbedingt mit Trigonometrie hinbekommen.
Hier nochmal mein Code:
Delphi-Quellcode:
procedure TRoboter.draw();
var points: array[0..4] of TPoint;
deg: array[0..4] of Single;
h,b: single;
i: integer;
begin
h := 20;
b := 10;
deg[0] := 180 - winkel + arctan(h/b)/Pi*180;
deg[1] := 180 - winkel + 180 - arctan(h/b)/Pi*180;
deg[2] := 180 - winkel - 180 + arctan(h/b)/Pi*180;
deg[3] := 180 - winkel - arctan(h/b)/Pi*180;
deg[4] := deg[0];
for i:=0 to 4 do
begin
points[i] := Point(round(position.X+b*cos(deg[i]*2*Pi/360)),round(position.Y+h*sin(deg[i]*2*Pi/360)));
end;
FForm.Canvas.Polyline(points);
inherited;
end;
Für diese Überlegung habe ich heute ganze 2 Reli-Stunden gesessen
Flare
//Edit: Mir fällt gerade auf, dass das nur hinhaut wenn Höhe und Breite des Rechtecks gleich sind (Quadrat), da scheint also was mit dem Faktor nicht zu stimmen.