如何计算3点之间的JavaScript角度?

Dej*_*anG 14 javascript point angle coordinates

我想在JavaScript中获得3点之间的角度.如果我有点A(x1,y1),B(x2,y2),C(x3,y3),我想获得由线AB和BC形成的角度.

而且我想知道,如果这些点是地理坐标,角度是否有差异?

Ima*_*teh 26

试试这个功能:

 /*
 * 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));
}
Run Code Online (Sandbox Code Playgroud)

  • 转换为度``(find_angle(A,B,C)*180)/ Math.PI` (5认同)
  • 这仅提供非反射角度(即小于180度的角度)的测量。因此,它不能区分角度ABC和角度CBA。因此,返回结果不提供角度“方向”感。根据用户的需求,这可能会接受也可能不会接受。 (2认同)