Ich erstelle eine Karte und berechne den Winkel der Linien, um die Ausrichtung einer Straße (NSEW) zu bestimmen.Winkel der Linie mit negativer Steigung berechnen
Unten ist die Formel I den Winkel einer Linie berechnen bin mit:
Math.tan(slope)/(Math::PI/180)
Das funktioniert, bis die Steigung von meiner Linie negativ ist. Wie kann ich den Winkel einer Linie mit negativer Steigung richtig berechnen?
aktualisieren Um den Winkel der Linie zu berechnen, die ich jetzt mit
Math.atan2(delta_y, delta_x)/(Math::PI/180)
Das Problem, von dem Einhalt zu gebieten scheint Punkte, die ich wählen Sie die Zeile beginnt bei/endet an. Abhängig davon, welche ich nehme, sind einige richtig, andere nicht, und umgekehrt. Hier ist ein Bild der Karte I erstellen:
ich nur versuchen, den Winkel der Linien zu berechnen, die mit dem Begrenzungsrahmen schneiden. Einer der Punkte ist immer dort, wo die Linie die Begrenzungsbox schneidet, der andere Punkt ist immer gleich dahinter.
Mein Ursprung (0,0) ist oben links.
Hat die Sprache, in der Sie programmieren, eine 'Math.atan2 (y, x)' Funktion? Das gibt Ihnen den richtigen Wert in allen vier Quadranten. –
@AndrewMorton es tut. Ich benutze Ruby. Wäre 'y = (y1 - y2)' und 'x = (x1-x2)'? – theartofbeing
@AndrewMorton so '(Math.atan2 (delta_y, delta_x)/(Mathematik :: PI/180))' - Ich habe nicht den richtigen Winkel. Ja auf 'E = 0, N = 90, W = 180, S = 270' – theartofbeing