12
我想在JavaScript中获得3个点之间的角度。如果我有点A(x1,y1),B(x2,y2),C(x3,y3),我想获得由AB和BC线组成的角度。如何用JavaScript角度计算3点?
而且我想知道,如果这些点是地理坐标,是否存在角度差异?
我想在JavaScript中获得3个点之间的角度。如果我有点A(x1,y1),B(x2,y2),C(x3,y3),我想获得由AB和BC线组成的角度。如何用JavaScript角度计算3点?
而且我想知道,如果这些点是地理坐标,是否存在角度差异?
试试这个功能:
/*
* 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));
}
如何使用这个功能呢?任何例子?我必须传递数组作为参数吗?! – Black
@EdwardBlack如果你看看代码,点将作为一个形式为'{x:0,y:0}'的对象传入。我编辑了答案来反映这一点。 –
以转换为度数'(find_angle(A,B,C)* 180)/ Math.PI' –