Winkel zwischen zwei 2D-Vektoren
-
Hallo,
wie bekomme ich den Winkel zwischen zwei 2D-Vektoren raus? Könnte mir das jemand nichtmathematikerfreundlich sagen?
Danke!
-
atan2(a.y,a.x)-atan2(b.y,b.x) ist vielleicht das einfachste.
-
Danke, aber damit kriege ich irgendwelche Zahlen unter 1 raus, nicht jedoch den Winkel in Grad. Wie komme ich an den?
-
blopblopblop schrieb:
Danke, aber damit kriege ich irgendwelche Zahlen unter 1 raus, nicht jedoch den Winkel in Grad. Wie komme ich an den?
Nee. Computer rechnen immer in Bogenmaß.
Rechne Dein Ergebnis noch /PI*180 und Du hast es Grad.
-
Hmm, geht immer noch nicht.
Ich habe zwei 2D-Positionsvektoren, möchte die quasi mit einer Linie verbinden und wissen, in welchem Winkel diese Linie zur X-Achse steht.
-
Und wo genau liegt jetzt dein Problem? Zieh den einen Punkt vom andren ab um den Richtungsvektor zu bekommen und dann mach atan2(delta_y, delta_x). Wenns da irgendwo scheitert würd ich dringend dazu raten mal ein wenig Mathe basics nachzuholen...
-
Der Winkel zweier Vektoren lässt sich auch über das Skalarprodukt ausrechnen:
acos(a.x * b.x + a.y * b.y)
Das liefert dir den Winkel im Bogenmaß. Zum umrechnen in Grad s.o.
Die Vektoren a und b müssen die Länge 1 haben.
Du kannst einen Vektor auf Länge 1 bringen, indem du ihn durch seine Länge teilst:
Vektor a mit Länge 1 = a / sqrt(a.x^2 + a.y^2)