2013-06-21 210 views
2

對不起,我很愚蠢的問題。 我慢慢學習從頭數學。用Javascript計算三角形的角度?

我想通過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)); 

不過,我得到一個完全錯誤的號碼。這是爲什麼?

+0

三角形有*三個*角度。你想要計算哪個? –

+0

你的代碼的其餘部分在哪裏?你在尋找哪個'角度'? – shennan

+1

他在找角度B,也就是角度對面B. – Kevin

回答

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))