JavaScriptで、3点の座標からなる角度を求める方法を書きます。
以下、角度を求める部分のJavaScript。
// plot[0].x、plot[0].yに1つ目のxy座標を代入しておく // plot[1].x、plot[1].yに2つ目のxy座標を代入しておく // plot[2].x、plot[2].yに3つ目のxy座標を代入しておく var ba = new Array(2); ba[0] = plot[0].x - plot[1].x; ba[1] = plot[0].y - plot[1].y; var bc = new Array(2); bc[0] = plot[2].x - plot[1].x; bc[1] = plot[2].y - plot[1].y; var babc = ba[0] * bc[0] + ba[1] * bc[1]; var ban = (ba[0] * ba[0]) + (ba[1] * ba[1]); var bcn = (bc[0] * bc[0]) + (bc[1] * bc[1]); var radian = Math.acos(babc / (Math.sqrt(ban * bcn))); var angle = radian * 180 / Math.PI; // 結果(ラジアンから角度に変換)
以下のサイトを参考にし、計算して角度を求めています。
このサイトの式の通りに、そのままプログラムを書いています。
ラジアンが求まるので、最後に、ラジアンから角度に変換しています。
コメント