2011年9月5日月曜日

ベクトルの内積の研究(1)

ベクトルの内積を研究する。

まずV,Uをそれぞれ、(3,5)、(6,3)としよう。
ベクトルの内積は下記のようになるものをいうらしい。

V●U = Vx * Ux + Vy * Uy

よって、内積は、3*6+5*3=となる。

内積ではもう一つ成立する式があるらしい。
V●U = |V|*|U|*cosθ

ベクトルの大きさは、三平方の定理で求められるので、下記のようになる。
|V| = 3^2+5^2の平方根 =
|U| = 6^2+3^2の平方根 =

よって、cosθの値が求められる。javascriptでやると下記のようになる。

var vx = 3, vy = 5;
var ux = 6, uy = 3;
var VU = vx*ux+vy*uy;
var valV = Math.sqrt(3*3+5*5);
var valU = Math.sqrt(6*6+3*3);
var cos = VU / valV / valU;
document.write(cos); 

 となる。

javascriptのMath.acos(cos)という関数は、cosの値を入れると角度を返してくれるようなのでやってみよう。

var rad = Math.acos(cos);
document.write(rad);



これはラジアンだが、360 度表記にすると、度ということだ。

これが合っているかをatan2関数を使って確認してみよう。

var radV = Math.atan2(vy, vx);
var radU = Math.atan2(uy,ux);
document.write(radV - radU);



おお合っている。

しかし、内積が便利に使えるシーンがまだよく分からない。atan2関数があれば不要だったりするのかのう。

0 件のコメント:

コメントを投稿