AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Winkel zwischen 2 Vektoren auch größer als 180°?
Thema durchsuchen
Ansicht
Themen-Optionen

Winkel zwischen 2 Vektoren auch größer als 180°?

Ein Thema von bigben37 · begonnen am 23. Apr 2011 · letzter Beitrag vom 24. Apr 2011
 
Benutzerbild von bigben37
bigben37

Registriert seit: 19. Dez 2007
Ort: Freiburg
116 Beiträge
 
Delphi 2009 Professional
 
#1

Winkel zwischen 2 Vektoren auch größer als 180°?

  Alt 23. Apr 2011, 23:32
Hallo DP,
um ein Objekt mit der Maus um seinen Mittelpunkt zu bewegen brauche ich den Winkel, den zwischen dem Vektor Ursprung - Startposition der Maus und Ursprung - momentane Position der Maus liegt. Nach kurzem Googeln bin ich auf diese Seite gestoßen und die dort angegebene Formel funktioniert auch so weit.
Das einzige Problem ist, dass diese Art der Berechung nur für Winkel 0° >= alpha >= 180° gilt, da immer der kleinere von beiden Winkeln berechnet wird.

Nun suche ich aber den Winkel, der zwischen der Startposition der Maus und der momentaten Position der Maus - und zwar in dieser Reihenfolge und nicht umgekerht - liegt.
Wie kann ich also schauen, ob ich den berechneten Winkel noch von 180° subtrahieren muss oder nicht

Hier ist mein aktueller Code:
Delphi-Quellcode:
procedure TFuncPlotter.OnMouseMove(Sender: TObject; Shift: TShiftState; X,
  Y: Integer);
var
  p1, p2: TPoint;
  da: Double; //delta alpha;
begin
  p1.X := FStartPos.X - Origin.X;
  p1.Y := FStartPos.Y - Origin.Y;
  p2.X := X - Origin.X;
  p2.Y := Y - Origin.Y;
  da := RadToDeg(ArcCos(((p1.X * p2.X + p1.Y * p2.Y) / (Sqrt(Sqr(p1.X) + Sqr(p1.Y)) * Sqrt(Sqr(p2.X) + Sqr(p2.Y)))))); //(p1 * p2) / (|p1| * |p2|)
  Rotation := FPlotterStartAngle + da;
end;
MfG Bigben37
Benjamin
Optimismus ist nur ein Mangel an Information
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz