Moin Moin erstmal,
ich habe es jetzt so gelöst:
Delphi-Quellcode:
function Angle(const p1, p2: TPoint; const InDeg: Boolean = true): Single;
begin
if p2.X = p1.X then
begin
if p1.Y < p2.Y then
Result := pi / 2
else
Result := 3 * pi / 2
end
else
begin
Result := Arctan((p2.Y - p1.Y) / (p2.X - p1.X));
if p2.x < p1.x then
Result := Result + pi;
if Result < 0 then
Result := Result + 2 * pi;
end;
if InDeg then
Result := RadToDeg(Result);
end;
Im MouseMove meiner Komponente:
Delphi-Quellcode:
Canvas.Pen.Color := clLime;
pt.X := Width div 2;
pt.Y := Height div 2;
Alpha := Angle(pt, Point(x, y), False);
Canvas.MoveTo(Width div 2, Height div 2);
Canvas.LineTo(Width div 2+ Round(Radius*cos(alpha)), Height div 2+ Round(Radius*sin(alpha)));
Jetzt habe ich nur noch das Problem, dass der "Pfeil" zwar gezeichnet wird aber der "alte" Pfeil nicht gelöscht wird. Ich kann also die Maus ganz langsam bewegen und habe dann irgendwann mal ein "voll ausgezeichneten Kreis"...
Könntet ihr mir da nochmal helfen?
Wäre echt hilfreich...
MFG Alex