私のスクリーンショットでわかるように、座標ABとBCの間の角度を計算しようとします。この場合、角度は明らかに90°です。しかし、どのように私はjavascriptコードでこの角度を決定することができますか?3つの座標の間の角度を決定する
私はこのthreadを発見し、受け入れられた解決策を試してみましたが、私は期待のように私はいつも1.57
の代わりに、90を得ます。私はそれに私のパラメータを渡す方法を理解していなかったので、元の関数を書き直しました。
私の悪いペイントと数学のスキルをお試しください。
\t function find_angle(Ax,Ay,Bx,By,Cx,Cy)
\t {
\t \t var AB = Math.sqrt(Math.pow(Bx-Ax,2) \t + \t Math.pow(By-Ay,2));
\t \t var BC = Math.sqrt(Math.pow(Bx-Cx,2) \t + \t Math.pow(By-Cy,2));
\t \t var AC = Math.sqrt(Math.pow(Cx-Ax,2) \t + \t Math.pow(Cy-Ay,2));
\t \t
\t \t return Math.acos((BC*BC+AB*AB-AC*AC) \t/\t (2*BC*AB));
\t }
\t var angle = find_angle
\t \t \t \t (
\t \t \t \t \t 4 , \t \t //Ax
\t \t \t \t \t 3 , \t \t //Ay
\t \t \t \t \t
\t \t \t \t \t 4 , \t \t //Bx
\t \t \t \t \t 2 , \t \t //By
\t \t \t \t \t
\t \t \t \t \t 0 , \t \t //Cx
\t \t \t \t \t 2 \t \t //Cy
\t \t \t \t)
\t \t \t \t
\t alert (angle);
ベクトルを理解していれば簡単です。ドットまたはクロスプロダクトを使用します。 – duffymo
ヒントありがとうございます、私はそれについて知らせます。私は数年前に学校で学んだベクトルについて学びましたが、私はすでにすべてを忘れていました... – Black
なぜ90歳ですか?あなたは90°を意味しますか? [それはまさにあなたが得るものです](https://en.wikipedia.org/wiki/Degree_(angle))、しかしラジアンで – BeyelerStudios