2013-07-20 14 views
12

Chcę uzyskać kąt między 3 punktami w JavaScript. Jeśli mam punkty A (x1, y1), B (x2, y2), C (x3, y3), chcę uzyskać kąt utworzony z linii AB i BC.Jak obliczyć w kącie JavaScript między 3 punktami?

Zastanawiam się również, czy istnieje różnica kąta, jeśli te punkty są współrzędnymi geograficznymi?

Odpowiedz

23

Spróbuj funkcję:

/* 
* Calculates the angle ABC (in radians) 
* 
* A first point, ex: {x: 0, y: 0} 
* C second point 
* B center point 
*/ 
function find_angle(A,B,C) { 
    var AB = Math.sqrt(Math.pow(B.x-A.x,2)+ Math.pow(B.y-A.y,2));  
    var BC = Math.sqrt(Math.pow(B.x-C.x,2)+ Math.pow(B.y-C.y,2)); 
    var AC = Math.sqrt(Math.pow(C.x-A.x,2)+ Math.pow(C.y-A.y,2)); 
    return Math.acos((BC*BC+AB*AB-AC*AC)/(2*BC*AB)); 
} 
+0

Jak korzystać z tej funkcji? Dowolne przykłady? Czy muszę przekazywać tablice jako parametr ?! – Black

+1

@EdwardBlack jeśli spojrzysz na kod, punkty zostaną przekazane jako obiekt w postaci '{x: 0, y: 0}'. Poprawiłem odpowiedź, aby to odzwierciedlić. –

+2

Konwersja na stopień '(find_angle (A, B, C) * 180)/Math.PI' –

Powiązane problemy