Winkel zwischen 2 Punkten mit xy Koordinaten berechnen?

4 Antworten

Mit D bezeichne ich den Drehpunkt. Mit v bezeichne ich den Vektor von D nach P1. Mit w bezeichne ich den Vektor von D nach P2. Dann berechnet sich der Winkel alpha zwischen v und w vermöge




kzumito 
Beitragsersteller
 04.09.2018, 12:21

Danke für deine Antwort.
Ich würde gern mit den vorhandenen x und y Koordinaten rechnen.
Gibt es eine Lösung ohne Vektoren?

Melvissimo  04.09.2018, 12:27
@kzumito

Ein Punkt, den du mithilfe von Koordinaten angibst, IST ein Vektor. Sagen wir,

D = (x0,y0)

P1 = (x1,y1)

P2 = (x2,y2)

Dann ist v = (x1-x0,y1-y0) und w = (x2-x0,y2-y0).

Oder auch kurz: v = P1 - D und w = P2 - D.

Das Skalarprodukt ist dann

v * w = (x1 - x0) * (x2 - x0) + (y1 - y0) * (y2 - y0).

Die Länge von v ist

|v| = sqrt((x1 - x0)² + (y1-y0)²). Entsprechendes gilt für |w|.

Damit kannst du wie oben angegeben cos(alpha) berechnen. Wirfst du jetzt arccos auf das Ergebnis, erhältst du deinen Winkel.

Wenn es dir nicht passieren kann, dass zwei x-Koordinaten gleich sind, ist der Weg von gfntom aber wohl angenehmer.

Joochen  04.09.2018, 12:34
@kzumito

Die genannten Vektoren haben je eine - und eine y-Komponente, und ich nehme an, die habest Du.

Mit den 2D-Koordinaten P1, P2 und D (vom Drehpunkt) gilt für den ?-Winkel alpha (unter Verwendung des Skalarprodukts und des Betrags):

    (P1 - D)(P2 - D )/(|P1 - D||P2 - D|) = cos(alpha)

Jetzt brauchst Du also nur noch die Arccos-Funktion.


kzumito 
Beitragsersteller
 04.09.2018, 12:24

Das sieht auch gut aus, vielen Dank für die Antwort.
Probiere ich aus.

Auch hier nochmal:

Du willst nicht den Winkel zwischen zwei Punkten berechnen, sondern zuwischen zwei Geraden, und zwar zwischen den Geraden D_P1 und D_P2. D bezeichnet hier den Drehpunkt.

Die Formel passt schon, du musst sie nur 2 mal anwenden und die Ergebnisse subtrahieren. Einmal berechnest du den Winkel zwischen der Geraden D_P1 und der Horizontalen, und einmal der Winkel zwischen D_P2 und der Horizontalen.


kzumito 
Beitragsersteller
 04.09.2018, 12:38

Vielen Dank, genau das war das Problem.
Meine Frage ist damit beantwortet.

kzumito 
Beitragsersteller
 04.09.2018, 12:23

Oh, das klingt äußerst sinnvoll, vielen Dank für deine Antwort.
Das probiere ich gleich aus.

gfntom  04.09.2018, 12:26
@kzumito

Du musst beim Arcustangens halt den Quadranten berücksichtigen...

Du betrachtest zunächst die Vektoren S1:=P1-Drehpunkt und S2:=P2-Drehtpunkt, d.h. du gehst einfach davon aus, dass der Drehpunkt 0 ist. Dann brauchst du nur noch den Kosinussatz


kzumito 
Beitragsersteller
 04.09.2018, 12:20

Danke für deine Antwort.
Leider kann ich mit der Schreibweise S1:=P1-Drehpunkt nicht viel anfangen. Was ist damit gemeint?