我想在JavaScript中获得3点之间的角度。如果我有点A(x1,y1),B(x2,y2),C(x3,y3),我想获得由线AB和BC形成的角度。
我也想知道,如果这些点是地理坐标,角度是否有差异?
答案 0 :(得分:24)
尝试此功能:
/*
* 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));
}