Einzelnen Beitrag anzeigen

Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#10

Re: Ein Pfeil um 360° drehen können ohne den Ursprung zu änd

  Alt 19. Apr 2005, 13:57
Ich hab mir mal dazu eine Funktion dazu geschrieben, Erklärung s. Bild
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;
Zu beachten ist allerdings, dass mit der verkehrten y-Achse von Windows auch die Winkel verkehrt herum sind. In dem Beispiel wäre Result z.B. etwa 330 °.

Also z.B: alpha := Angle(Mittelpunkt, Point(x, y), false); @Binärbaum: Du hast MoveTo und LineTo verwechselt .
Miniaturansicht angehängter Grafiken
angle_112.png  
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat