用Javascript计算三角形的角度?

时间:2013-06-21 14:31:58

标签: javascript math trigonometry

抱歉这个非常愚蠢的问题。 我正在慢慢地从头学习数学。

我想通过javascript计算三角形的角度。

我计算边长,

Ab = Math.abs(b.x - c.x);
Ac = Math.abs(b.y - c.y);

A = Math.sqrt((Ab*Ab) + (Ac*Ac));

Bb = Math.abs(a.x - c.x);
Bc = Math.abs(a.y - c.y);

B = Math.sqrt((Bb*Bb) + (Bc*Bc));

Cb = Math.abs(a.x - b.x);
Cc = Math.abs(a.y - b.y);

C = Math.sqrt((Cb*Cb) + (Cc*Cc));

然后我达到了这一点:

angleB = Math.cos(((C*C) + (A*A) - (B*B))/(2*C*A));

然而,我得到一个完全错误的号码。为什么会这样?

1 个答案:

答案 0 :(得分:3)

您的代码在使用Math.cos时会使用Math.acos

law of cosines开始,我们得出了正确的公式:

b*b = a*a + c*c - 2*a*c*cos(angleB)
b*b - a*a - c*c = - 2*a*c*cos(angleB)
2*a*c*cos(angleB) = a*a + c*c - b*b
cos(angleB) = (a*a + c*c - b*b) / (2*a*c)
angleB = acos((a*a + c*c - b*b) / (2*a*c))