Как рассчитать угол JavaScript между 3 точками?

Я хочу получить угол между 3 точками в JavaScript. Если у меня есть точки A (x1, y1), B (x2, y2), C (x3, y3), я хочу получить угол, который формируется линиями AB и BC.

И также мне интересно, есть ли разница в угле, если эти точки являются географическими координатами?

Ответ 1

Попробуйте эту функцию:

 /*
 * 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));
}