2017-10-06 3 views
0

Wie Sie auf dem Bild sehen können, habe ich eine Linie und zwei Punkte (p1 und p4). was ich tun muss, ist Schnapppunkt von p1/p4 auf der Linie zu bekommen und dann atan2 zu verwenden, um den Winkel zwischen (p1 und p2) und (p3 und p4) zu berechnen. Nun, ich habe zwei Formeln:Wie funktioniert atan2? Welcher Winkel wird tatsächlich berechnet?

var anglep1p2 = Math.atan2(p2[1] - p1[1], p2[0] - p1[0]) * 180/Math.PI; 
var anglep4p3 = Math.atan2(p4[1] - p3[1], p4[0] - p3[0]) * 180/Math.PI; 

anglep1p2 berechnet 103,66797855556482 anglep4p3 berechnet -76,74971541138642

Ich frage mich, wie funktioniert atan2 diese Werte berechnet werden? Dank für jede Hilfe

enter image description here

Antwort

0

Diese Antworten Sinn machen. Sie berechnen den Winkel einer einzelnen Linie ausgehend von der positiven x-Achse. Die Art, wie Sie anglep1p2 berechnen, entspricht der gezogenen Linie von p1 bis p2.

Wenn Sie den Ursprung eines Koordinatensystems am Startpunkt p1 zupfen (man es bei p2 setzen in Ihrem Diagramm), dann ist die Zahl, die Sie die Drehung von der positiven x-Achse erhalten, sollten Sie zog auf der Linie sein - etwas über 90 Grad macht intuitiv Sinn.

Ihr zweites Ergebnis wird von Ihrem ersten umgedreht (beachten Sie, dass Sie p4/p3 in der gleichen Reihenfolge wie Ihr Variablenname verwendet haben, während Sie diese Reihenfolge im Fall p1/p2 umgekehrt haben). Um Verwechslungen zu vermeiden, würde ich den Fall p1/p2 verwenden, um Verständnis zu erlangen, und ihn dann auf die gleiche Weise auf den anderen Fall anwenden, sobald Sie wissen, was Sie wollen.


Wenn Sie eine bestimmte Geometrie/Beziehung Problem haben Sie müssen herausfinden, können Sie die Details zur Verfügung stellen und ich könnte mehr in der Lage gezielt zu helfen.