Hab das mal so gelöst, ist aber schon länger her !
Delphi-Quellcode:
function AngleOfPoint (Pt :TPoint) : double;
begin
Result := 0;
if ((Pt.X = 0) and (Pt.Y < 0)) then Result := 270 else
if ((Pt.X = 0) and (Pt.Y > 0)) then Result := 90 else
if ((Pt.X > 0) and (Pt.Y >= 0)) then Result := ArcTan(Pt.Y / Pt.X) * RadToDeg else
if ((Pt.X < 0) and (Pt.Y > 0)) then Result := 180 + ArcTan(Pt.Y / Pt.X) * RadToDeg else
if ((Pt.X < 0) and (Pt.Y <= 0)) then Result := 180 + ArcTan(Pt.Y / Pt.X) * RadToDeg else
if ((Pt.X > 0) and (Pt.Y < 0)) then Result := 360 + ArcTan(Pt.Y / Pt.X) * RadToDeg else
Result := 0;
end;
function PointOfAngAndDist (Angle,Distance : Double) : TPoint;
var Radians : Double;
begin
Radians := Angle * DegToRad;
Result.X := Round(Distance * Cos(Radians));
Result.Y := Round(Distance * Sin(Radians));
end;
Musst immer den Punkt angeben, auf den "gezeigt" werden soll, der Winkel wird zurückgegeben.
Vielleicht kannst Du da was mit anfangen !
//EDIT : Sry, hatte die 2. Funktion vergessen !!!