2

かなりばかげた質問で申し訳ありません。私はゆっくりとゼロから数学を学んでいます。

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

しかし、私は完全に間違った番号を取得します。これはなぜですか?

4

1 に答える 1

4

コードは、使用Math.cosする必要がある場合に使用しますMath.acos

コサインの法則から始めて、正しい式を導き出します。

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))
于 2013-06-21T14:41:34.360 に答える