Posts Tagged Vector

ベクトル その8 -クロス積-

外積
ドット積のほかにベクトルではもうひとつの掛け算の方法がある。
「クロス積」または「外積」として知られている。
クロス積はa \times bと表記することからこう呼ばれる。
3Dベクトルのみに適用できる。
また、ドット積とは違い、可換ではない。

公式:\left[  \begin{array}{c}  x_1\\  y_1\\  z_1  \end{array}  \right]  \times  \left[  \begin{array}{c}  x_1\\  y_1\\  z_1  \end{array}  \right]  =  \left[  \begin{array}{c}  y_1 z_2 - z_1 y_2\\  z_1 x_2 - x_x z_2\\  x_1 y_2 - y_1 x_2  \end{array}  \right]

例:
\left[  \begin{array}{c}  4\\  1\\  9  \end{array}  \right]  \times  \left[  \begin{array}{c}  -3\\  7\\  2  \end{array}  \right]  =  \left[  \begin{array}{c}  (1)(2) - (9)(7)\\  (9)(-3) - (4)(2)\\  (4)(7) - (1)(-3)  \end{array}  \right]  =  \left[  \begin{array}{c}  2 - 63\\  -27 - 8\\  28 - (-3)  \end{array}  \right]  =  \left[  \begin{array}{c}  -61\\  -35\\  31  \end{array}  \right]
クロス積の計算は足し算や引き算の優先順位は変わらないが、ドット積とクロス積を組み合わせた場合はクロス積が優先的に計算される。
a \cdot b \times c = a \cdot (b \times c)

クロス積は各々のベクトルに垂直なベクトルとなる。

上記の図ではベクトルa、bは同じ平面上にあり、その平面に垂直なベクトルとなる。
また、a \times bの長さははベクトルa、bの大きさにベクトルa、bなす角のsinを掛けたものと等しくなる。
公式:\|a \times b\| = \|a\|\|b\|sin\theta

aとbが平行、またはどちらかがゼロベクトルならばa \times b = 0となる。
クロス積はゼロベクトルを全てのベクトルに平行と見なす。
また、a \times bはaとbに平行であるもののこちらへ向かってくるベクトルなのか、遠ざかって行くベクトルなのかで2つの可能性がある。

上記は右手系座標系である。
図のようにベクトルaとbを連結したときに反時計回りをする場合、a \times bはこちらへ向かっていることになる。
逆に、時計回りになった場合、遠ざかっている。
また、左手座標系では時計回りの時近づき、反時計回りの時に遠ざかることになる。

実例で学ぶゲーム3D数学

著者/訳者:Fletcher Dunn Ian Parberry

出版社:オライリージャパン( 2008-10-04 )

定価:

Amazon価格:¥ 3,672

大型本 ( 484 ページ )

ISBN-10 : 4873113776

ISBN-13 : 9784873113777


Post to Twitter

, ,

No Comments

ベクトル その7 -ベクトルの投影-

2つのベクトルvとnが与えられている場合、nに平行な線分v_{\|}と、nに垂直な線分v_\perpに分解することが出来る。

よって、v = v_\perp + v_\|(式1)となる。
v_\|はnの要素中の\displaystyle\frac{\|v_\|\|}{\|n\|}であるから、
\displaystyle{v_\| = n\frac{\|v_\|\|}{\|n\|}}(式2)であると言える。
また、
\displaystyle{cos\theta = \frac{\|v_\|\|}{\|v\|}}(式3)
であるため、
\displaystyle{cos\theta\|v\| = \|v_\|\|}(式4)
と言える。

式2と式4より
\displaystyle{v_\| = n\frac{cos\theta\|v\|}{\|n\|}}(式5)
ドット積の回で使った公式a \cdot b = \|a\|\|b\|cos\thetaを適用すると
  \begin{array}{ll}  v_\| &= \displaystyle{n\frac{\|v\|cos\theta}{\|n\|}}\\[2ex]  &= \displaystyle{n\frac{\|v\|\|n\|cos\theta}{\|n\|^2}}\\[2ex]  &= \displaystyle{n\frac{v \cdot n}{\|n\|^2}}\\[2ex]  \end{array}(式6)
となり、vの底辺の要素を求めることが出来る。

また、式1から
\begin{array}{ll}  v_\perp + v_\| &= v\\[2ex]  v_\perp &= v - v_\|\\[2ex]  &= v - \displaystyle{n\frac{v \cdot n}{\|n\|^2}}  \end{array}
となり、vの高さ要素を求めることが出来る。

例:v = [5, 3], n = [3, 0]の時
\begin{array}{lll}  v_\| &= \displaystyle{n\frac{v \cdot n}{\|n\|^2}} &= \displaystyle{[3, 0]\frac{[5, 3]\cdot[3, 0]}{\|[3, 0]\|^2}}\\[2ex]  &= \displaystyle{[3, 0]\frac{(5)(3) + (3)(0)}{\sqrt{3^2}^2}} &= \displaystyle{[3, 0]\frac{15}{9}}\\[2ex]  &= \displaystyle{[3, 0]\frac{5}{3}} &= \displaystyle{[\frac{3 \times 5}{3}, 0]}\\[2ex]  &= \displaystyle{[5, 0]}  \end{array}
\begin{array}{lll}  v_\perp &= v - \displaystyle{n\frac{v \cdot n}{\|n\|^2}} &= [5, 3] - \displaystyle{[3, 0]\frac{[5, 3]\cdot[3, 0]}{\|[3, 0]\|^2}}\\[2ex]  &= [5, 3] - [5, 0] &= [0, 3]  \end{array}

例:v = [5, 3], n = [4, 2]の時
\begin{array}{lll}  v_\| &= \displaystyle{n\frac{v \cdot n}{\|n\|^2}} &= \displaystyle{[4, 2]\frac{[5, 3]\cdot[4, 2]}{\|[4, 2]\|^2}}\\[2ex]  &= \displaystyle{[4, 2]\frac{(5)(4) + (3)(2)}{\sqrt{4^2 + 2^2}^2}} &= \displaystyle{[4, 2]\frac{20 + 6}{16 + 4}}\\[2ex]  &= \displaystyle{[4, 2]\frac{26}{20}} &= \displaystyle{[4, 2]\frac{13}{10}}\\[2ex]  &= \displaystyle{[\frac{4 \times 13}{10}, \frac{2 \times 13}{10}]} &= \displaystyle{[5.2, 2.6]}  \end{array}
\begin{array}{lll}  v_\perp &= v - \displaystyle{n\frac{v \cdot n}{\|n\|^2}} &= [5, 3] - \displaystyle{[4, 2]\frac{[5, 3]\cdot[4, 2]}{\|[4, 2]\|^2}}\\[2ex]  &= [5, 3] - [5.2, 2.6] &= [-0.2, 0.4]  \end{array}

Post to Twitter

, ,

No Comments

ベクトル その6 -ドット積-

ドット積
ベクトルには2つの掛け算方法がある。
そのひとつが「ドット積」または「内積」と呼ばれる。
ドット積とはベクトルの内積を表現するときにa \cdot bとなるためにこう呼ばれる。
ベクトルのドット積は足し算引き算より優先順位が高い。
ベクトルとスカラー値を掛け算する場合、ドットを省略する場合が多いが、ベクトルの内積を計算するときは省略をしない。
公式:\left[  \begin{array}{c}  a_1\\  a_2\\  \vdots\\  a_{n-1}\\  a_n  \end{array}  \right]  \cdot  \left[  \begin{array}{c}  b_1\\  b_2\\  \vdots\\  b_{n-1}\\  b_n  \end{array}  \right]  =  a_1 b_1 + a_2 b_2 + \cdots + a_{n-1} b_{n-1} + a_n b_n
または
\displaystyle  a \cdot b =  \sum^{n}_{i=1}a_i b_i

例:
2D
[\begin{array}{cc}-5 & 8\end{array}]\cdot[\begin{array}{cc}4 & 7\end{array}] = (-5)(4) + (8)(7) = -20 + 56 = 36
3D
\left[  \begin{array}{c}  1\\  -4\\  3  \end{array}  \right]  \cdot  \left[  \begin{array}{c}  -7\\  6\\  2  \end{array}  \right]  =  (1)(-7) + (-4)(6) + (3)(2) = -7 + (-24) + 6 = -25

ベクトルのドット積は2つのベクトルがどれくらい似ているかを示す。
ドット積が大きければ大きいほど2つのベクトルは似ている。

下記は「例:2D」を図示したもの。

参考:[\begin{array}{cc}-5 & 8\end{array}]\cdot[\begin{array}{cc}4 & 7\end{array}] = (-5)(4) + (8)(7) = -20 + 56 = 36

下記はX、Y共に同じ方向を向いている場合。

[\begin{array}{cc}2 & 8\end{array}]\cdot[\begin{array}{cc}4 & 7\end{array}] = (2)(4) + (8)(7) = 8 + 56 = 64
最初の例より値が大きくなった。

同一ベクトルの場合。

[\begin{array}{cc}4 & 7\end{array}]\cdot[\begin{array}{cc}4 & 7\end{array}] = (4)(4) + (7)(7) = 16 + 49 = 65
同じベクトルになると、さらに値が大きくなった。

Y成分だけ真逆の場合。

[\begin{array}{cc}4 & 7\end{array}]\cdot[\begin{array}{cc}4 & -7\end{array}] = (4)(4) + (7)(-7) = 16 + (-49) = -33
X成分が同じものの、Y成分の差が大きいため、かなり値が小さくなった。

真逆のベクトルの場合。

[\begin{array}{cc}-4 & -7\end{array}]\cdot[\begin{array}{cc}-4 & -7\end{array}] = (-4)(4) + (-7)(7) = -16 + (-49) = -65
全てが真逆のため、2番目の真逆の値を示した。

X成分だけ真逆の場合。

[\begin{array}{cc}-4 & 7\end{array}]\cdot[\begin{array}{cc}4 & 7\end{array}] = (-4)(4) + (7)(7) = -16 + 49 = 33
Y成分だけ真逆の時の値を反転させた値となった。
X成分が違うものの、Y成分が同じため、比較的大きい値になった。

AOBが直角の場合。

[\begin{array}{cc}-7 & 4\end{array}]\cdot[\begin{array}{cc}4 & 7\end{array}] = (-7)(4) + (4)(7) = -28 + 28 = 0
a \cdot bのドット積が直角の場合、0になる。

ベクトルの内積の幾何学的解釈
公式:a \cdot b = \|a\|\|b\|cos\theta
ドット積はベクトルの大きさとベクトルのなす角ののcosを掛けたものと等しくなる。

ベクトルのなす角を2つのベクトルから求める
公式:\theta = arccos\displaystyle\left(\frac{a \cdot b}{\|a\|\|b\|}\right)
aとbの単位ベクトルを掛けたものにarc cosinで求めているだけなので、aとbが既に単位ベクトルの場合は分母を省略可。
その場合は
公式:\theta = arccos(a \cdot b)
となる。
※arccos(x)はarc cosin(アークコサイン)の意。
また、この場合\thetaは度数法ではなく、弧度法なので単位はラジアンとなる。
公式:360^\circ = 2\pi

再び2Dの時に使ったベクトルを元に計算すると、
  \begin{array}{ll}  \theta &= \displaystyle{arccos\left(\frac{a \cdot b}{\|a\|\|b\|}\right)}\\[1em]  &= \displaystyle{arccos\left(\frac{[\begin{array}{cc}-5 & 8\end{array}]\cdot[\begin{array}{cc}4 & 7\end{array}]}{\|[\begin{array}{cc}-5 & 8\end{array}]\|\|[\begin{array}{cc}4 & 7\end{array}]\|}\right)}\\[1em]  &= \displaystyle{arccos\left(\frac{(-5)(4) + (8)(7)}{\sqrt{(-5)^2+8^2}\sqrt{4^2+7^2}}\right)}\\[1em]  &= \displaystyle{arccos\left(\frac{-20 + 56}{\sqrt{25+64}\sqrt{16+49}}\right)}\\[1em]  &= \displaystyle{arccos\left(\frac{36}{\sqrt{89}\sqrt{65}}\right)}\\[1em]  &= \displaystyle{arccos\left(\frac{36}{\sqrt{5785}}\right)}\\[1em]  &= \displaystyle{arccos\left(\frac{36}{76.059}\right)}\\[1em]  &= arccos(0.4733)  \end{array}
三角関数表により
arccos(0.4733)\fallingdotseq62^\circ

角度による関係

a \cdot b \theta 角度 aとbの関係
> 0 0^\circ \leq \theta < 90^\circ 鋭角 同じ向き、あるいは同じような方向に向いている。
= 0 \theta = 90^\circ 直角 直交している。
< 0 90^\circ < \theta \leq 180^\circ 鈍角 真逆、あるいは反対側の方向に向いている。

実例で学ぶゲーム3D数学

著者/訳者:Fletcher Dunn Ian Parberry

出版社:オライリージャパン( 2008-10-04 )

定価:

Amazon価格:¥ 3,672

大型本 ( 484 ページ )

ISBN-10 : 4873113776

ISBN-13 : 9784873113777


Post to Twitter

, ,

No Comments

ベクトル その5 -距離-

aとbがあったとして、その間のベクトルVはb – aあるいはa – bとなる。
公式:V = b - a =  \left[  \begin{array}{c}  b_x - a_x\\  b_y - a_y\\  b_z - a_z  \end{array}  \right]

距離は
{\rm Distance}(a, b) = \|b - a\| = \sqrt{(b_x - a_x)^2 + (b_y - a_y)^2 + (b_z - a_z)^2}
となる。

例:
a = [5, 9, -8], b = [-11, 1, 7], \overrightarrow{ab}の時
\begin{array}{ll}  {\rm Distance}(a, b) &= {\rm Distance}([5,9, -8], [-11, 1, 7])\\[0.5em]  &= \|[5,9,-8], [-11, 1,7]\|\\[0.5em]  &= \sqrt{(-11 - 5)^2 + (1 - 9)^2 + (7 - (-8))^2}\\[0.5em]  &= \sqrt{(-16)^2 + (-8)^2 + 15^2}\\[0.5em]  &= \sqrt{256 + 64 + 225}\\[0.5em]  &= \sqrt{545}\\[0.5em]  &\fallingdotseq 23.3452  \end{array}

\overrightarrow{ba}も同様に
\begin{array}{ll}  {\rm Distance}(b, a) &= {\rm Distance}([-11, 1, 7], [5,9, -8])\\[0.5em]  &= \|[-11, 1,7], [5,9,-8]\|\\[0.5em]  &= \sqrt{(5 - (-11))^2 + (9 - 1)^2 + (-8 - 7)^2}\\[0.5em]  &= \sqrt{16^2 + 8^2 + (-15)^2}\\[0.5em]  &= \sqrt{256 + 64 + 225}\\[0.5em]  &= \sqrt{545}\\[0.5em]  &\fallingdotseq 23.3452  \end{array}
となる。

実例で学ぶゲーム3D数学

著者/訳者:Fletcher Dunn Ian Parberry

出版社:オライリージャパン( 2008-10-04 )

定価:

Amazon価格:¥ 3,672

大型本 ( 484 ページ )

ISBN-10 : 4873113776

ISBN-13 : 9784873113777


Post to Twitter

, ,

No Comments

ベクトル その4 -足し算と引き算-

ベクトル同士の足し算引き算が出来る。

ベクトルの足し算
公式:\left[  \begin{array}{c}  a_1\\  a_2\\  \vdots\\  a_{n-1}\\  a_n  \end{array}  \right]  +  \left[  \begin{array}{c}  b_1\\  b_2\\  \vdots\\  b_{n-1}\\  b_n  \end{array}  \right]  =  \left[  \begin{array}{c}  a_1 + b_1\\  a_2 + b_2\\  \vdots\\  a_{n-1} + b_{n-1}\\  a_n + b_n  \end{array}  \right]
ベクトルの各要素を足すのみ。
例:\begin{array}{ll}  \left[  \begin{array}{c}  12\\  -30\\  5  \end{array}  \right]  +  \left[  \begin{array}{c}  -3\\  7\\  19  \end{array}  \right]  &=  \left[  \begin{array}{c}  12 + (-3)\\  -30 + 7\\  5 + 19  \end{array}  \right]\\  &=  \left[  \begin{array}{c}  9\\  -23\\  24  \end{array}  \right]  \end{array}

ベクトルの引き算
公式:\left[  \begin{array}{c}  a_1\\  a_2\\  \vdots\\  a_{n-1}\\  a_n  \end{array}  \right]  -  \left[  \begin{array}{c}  b_1\\  b_2\\  \vdots\\  b_{n-1}\\  b_n  \end{array}  \right]  =  \left[  \begin{array}{c}  a_1 - b_1\\  a_2 - b_2\\  \vdots\\  a_{n-1} - b_{n-1}\\  a_n - b_n  \end{array}  \right]
ベクトルの足し算と同様、ベクトルの各要素を引くのみ。
例:\begin{array}{ll}  \left[  \begin{array}{c}  1\\  22\\  -5  \end{array}  \right]  -  \left[  \begin{array}{c}  -14\\  10\\  0  \end{array}  \right]  &=  \left[  \begin{array}{c}  1 - (-14)\\  22 - 10\\  -5 - 0  \end{array}  \right]\\  &=  \left[  \begin{array}{c}  13\\  12\\  -5  \end{array}  \right]  \end{array}

実例で学ぶゲーム3D数学

著者/訳者:Fletcher Dunn Ian Parberry

出版社:オライリージャパン( 2008-10-04 )

定価:

Amazon価格:¥ 3,672

大型本 ( 484 ページ )

ISBN-10 : 4873113776

ISBN-13 : 9784873113777


Post to Twitter

, ,

No Comments

ベクトル その3 -ベクトルの正規化-

ベクトルの正規化
公式:\displaystyle {\bf v}_{\rm norm}=\frac{\bf v}{\|{\bf v}\|},{\bf v}\neq {\bf 0}
ベクトルの正規化とは、ベクトルの各要素をベクトルの大きさで割ったものとなる。
ベクトルの各要素のベクトルの大きさから占める割合が求まる。
後々計算が楽になるらしい。

例:\displaystyle  \begin{array}{ll}  \displaystyle \frac{[\begin{array}{cc}12 & -5\end{array}]}{\|[\begin{array}{cc}12 & -5\end{array}]\|} &= \displaystyle \frac{[\begin{array}{cc}12 & -5\end{array}]}{\sqrt{12^2+(-5)^2}}\\  &= \displaystyle \frac{[\begin{array}{cc}12 & -5\end{array}]}{\sqrt{169}}\\[1ex]  &= \displaystyle \frac{[\begin{array}{cc}12 & -5\end{array}]}{13}\\[1ex]  &= \displaystyle \left[\frac{12}{13} \frac{-5}{13}\right]\\[1ex]  &\fallingdotseq \displaystyle [0.923 -0.385]  \end{array}

実例で学ぶゲーム3D数学

著者/訳者:Fletcher Dunn Ian Parberry

出版社:オライリージャパン( 2008-10-04 )

定価:

Amazon価格:¥ 3,672

大型本 ( 484 ページ )

ISBN-10 : 4873113776

ISBN-13 : 9784873113777


Post to Twitter

, ,

No Comments

ベクトル その2 -ベクトルとスカラーの掛け算・割り算-

ベクトルとスカラーの掛け算
公式:  k \left[  \begin{array}{c}  a_1\\  a_2\\  \vdots\\  a_{n-1}\\  a_n  \end{array}  \right]=  \left[  \begin{array}{c}  a_1\\  a_2\\  \vdots\\  a_{n-1}\\  a_n  \end{array}  \right]k=  \left[  \begin{array}{c}  ka_1\\  ka_2\\  \vdots\\  ka_{n-1}\\  ka_n  \end{array}  \right]
ベクトルとスカラーの掛け算はベクトルの各要素にスカラー値を掛けるのみ。

ベクトルをゼロ以外のスカラーで割る
公式:\displaystyle  \frac{\bf v}{k}=  \left(  \frac{1}{k}  \right){\bf v}=  \left[  \begin{array}{c}  {\bf v}_x/k\\  {\bf v}_y/k\\  {\bf v}_z/k  \end{array}  \right]
ベクトルのそれぞれの要素をスカラー値で割る。

実例で学ぶゲーム3D数学

著者/訳者:Fletcher Dunn Ian Parberry

出版社:オライリージャパン( 2008-10-04 )

定価:

Amazon価格:¥ 3,672

大型本 ( 484 ページ )

ISBN-10 : 4873113776

ISBN-13 : 9784873113777


Post to Twitter

, ,

No Comments

ベクトル その1 -ゼロベクトル・ベクトルの反転・ベクトルの大きさ-

ゼロベクトル
公式:\bf{0}=\left[  \begin{array}{c}  0\\  0\\  \vdots\\  0  \end{array}  \right]
通常のベクトルはあらゆる方向へ無限大なのに対して、ゼロベクトルはどの方向に対しても0をさす。

ベクトルの反転
公式:-\left[  \begin{array}{c}  a_{1}\\  a_{2}\\  \vdots\\  a_{n-1}\\  a_{n}  \end{array}  \right]=\left[  \begin{array}{c}  -a_{1}\\  -a_{2}\\  \vdots\\  -a_{n-1}\\  -a_{n}  \end{array}  \right]
ベクトルを反転するには全要素を反転させれば求められる。

ベクトルの大きさ
公式:\|v\|=\sqrt{{v_{1}}^{2}+{v_{2}}^{2}+\cdots+{v_{n-1}}^{2}+{v_{n}}^{2}}
\displaystyle\|v\|=\sqrt{\sum^{n}_{i=1}{v_i}^2}
ベクトルの大きさは全要素の二乗を足した数の平方根したものになる。
ベクトルの大きさは\|v\|で表現されるが、|v|と表現されることもある。

実例で学ぶゲーム3D数学

著者/訳者:Fletcher Dunn Ian Parberry

出版社:オライリージャパン( 2008-10-04 )

定価:

Amazon価格:¥ 3,672

大型本 ( 484 ページ )

ISBN-10 : 4873113776

ISBN-13 : 9784873113777


Post to Twitter

, ,

No Comments