Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 确定3个坐标之间的角度_Javascript_Math - Fatal编程技术网

Javascript 确定3个坐标之间的角度

Javascript 确定3个坐标之间的角度,javascript,math,Javascript,Math,正如你在我的截图中看到的,我试图计算坐标AB和BC之间的角度,在这种情况下,角度显然是90°。但是我如何用javascript代码确定这个角度呢 我发现了这一点,并尝试了公认的解决方案,但我总是得到1.57,而不是我预期的90。我重写了原始函数,因为我不知道如何将参数传递给它 请原谅我画画和数学能力差 函数查找角度(Ax、Ay、Bx、By、Cx、Cy) { var AB=Math.sqrt(Math.pow(Bx Ax,2)+Math.pow(By Ay,2)); var BC=Math.s

正如你在我的截图中看到的,我试图计算坐标AB和BC之间的角度,在这种情况下,角度显然是90°。但是我如何用javascript代码确定这个角度呢

我发现了这一点,并尝试了公认的解决方案,但我总是得到
1.57
,而不是我预期的90。我重写了原始函数,因为我不知道如何将参数传递给它

请原谅我画画和数学能力差

函数查找角度(Ax、Ay、Bx、By、Cx、Cy)
{
var AB=Math.sqrt(Math.pow(Bx Ax,2)+Math.pow(By Ay,2));
var BC=Math.sqrt(Math.pow(Bx-Cx,2)+Math.pow(By-Cy,2));
VarAC=Math.sqrt(Math.pow(cxax,2)+Math.pow(Cy-Ay,2));
返回Math.acos((BC*BC+AB*AB-AC*AC)/(2*BC*AB));
}
变量角度=查找角度
(
4,//Ax
3,//Ay
4,//Bx
2、//由
0,//Cx
2//Cy
)
警报(角度)答案在该线程中以弧度给出

1.57弧度为90度(π/2)。您可以将答案乘以180/pi,将其转换为度

A={x:4,y:3};
B={x:4,y:2};
C={x:0,y:2};
警报(查找角度(A、B、C));
函数查找角(A、B、C){
VarAB=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));
VarAC=Math.sqrt(Math.pow(C.x-A.x,2)+Math.pow(C.y-A.y,2));
返回Math.acos((BC*BC+AB*AB-AC*AC)/(2*BC*AB))*(180/Math.PI);

}
设置
v=A-B
w=C-B
。那么
v
w
之间的角度就是
vx+i*vy
wx+i*wy
之间的角度,是
w/v
的参数(作为复数),这取决于正因子

(wx+i*wy)*(vx-i*vy)=wx*vx+wy*vy+i*(wy*vx-wx*vy).
复数的参数最好使用
atan2
函数计算,因此

angle = atan2( wy*vx-wx*vy , wx*vx+wy*vy)

如前所述,使用的角度以弧度为单位,因此如果需要,您必须转换为度。

如果您了解向量,则很容易。使用点积或叉积。谢谢你的提示,我会通知你的。几年前我在学校学过向量,但我已经把一切都忘了……为什么你期望90?你是说90度,但在radians中,除非你告诉计算机将数字转换为度,否则计算机往往以弧度工作。呵呵,听起来像函数find_gold(),javascript的寻宝者。。。