Registriert seit: 20. Jun 2003
282 Beiträge
Delphi 10.4 Sydney
|
Re: Ellipsen die sich um ihren Mittelpunkt drehen mit Delphi
28. Feb 2005, 20:30
Nicht schlecht, das hätt ich vor einigen Monaten gebrauchen können. Eine Sache fehlt jedoch oder ich hab's bei dir übersehen und zwar: ARC's bzw Teilellipsen.
Hab mich damals auch damit beschäftigt und habe schließlich diese Procedure geschrieben:
Delphi-Quellcode:
Procedure DrawEllipse(Dest: TCanvas; xCenter, yCenter, // Mittelpunkt
xRadius, yRadius: Single; // breite, höhe
sAngle: Single = 0; // StartWinkel
eAngle: Single = 360; // EndWinkel
RotateAngle: Single = 0; // DrehWinkel
Points: Byte = 50); // Anzahl der Punkte
Var
rAngle, step: Single;
x1, y1: Integer;
Procedure GetPos(Angle: Single; Out x1, y1: Integer);
Var x, y, Theta: Single;
Begin
Theta:=Angle*(PI/180);
x:=xRadius*cos(-Theta);
y:=yRadius*sin(-Theta);
x1:=Round(xCenter+x*Cos(-rAngle)-y*Sin(-rAngle));
y1:=Round(yCenter+x*Sin(-rAngle)+y*Cos(-rAngle));
End;
begin
rAngle:=RotateAngle*(PI/180);
step:=(eAngle-sAngle)/Points;
GetPos(sAngle,x1,y1);
Dest.MoveTo(x1,y1);
sAngle:=sAngle+step;
While sAngle<eAngle Do Begin
GetPos(sAngle,x1,y1);
Dest.LineTo(x1,y1);
sAngle:=sAngle+step;
End;
GetPos(eAngle,x1,y1);
Dest.LineTo(x1,y1);
End;
|
|
Zitat
|