I want to get angle between 3 points in JavaScript.
If I have points A(x1,y1)
, B(x2, y2)
and C(x3, y3)
, I want to get angle that is formed with lines AB and BC.
let A = {x:x1, y:y1}, B = {x:x2, y:y2}, C = {x:x3, y:y3}
Try this function :
/*
* 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));
}
{x: 0, y: 0}
. I edited the answer to reflect this.
Commented
May 11, 2016 at 4:02
(find_angle(A,B,C) * 180) / Math.PI
Commented
Sep 21, 2016 at 21:29
compass-geolocation
. I try to edit and get this highly interesting question on topic again as there already are an answer that worked for me (detecting figures).