ベクトル解析​/内積と正射影 のバックアップ差分(No.4)

Unity学習帳2冊目ベクトル解析 / 内積と正射影 のバックアップ差分(No.4)
« Prev  Next »
3: 2015-03-27 (金) 02:22:25 osinko ソース 4: 2015-03-30 (月) 03:48:06 osinko ソース
Line 8: Line 8:
\(\overrightarrow { A } \cdot \overrightarrow { B } =x_{ A }\times x_{ B }+y_{ A }\times y_{ B }+z_{ A }\times z_{ B }\) \(\overrightarrow { A } \cdot \overrightarrow { B } =x_{ A }\times x_{ B }+y_{ A }\times y_{ B }+z_{ A }\times z_{ B }\)
-計算結果の値はベクトルにならずにスカラー(量)になる事に注意。尚、ベクトルは太字でも表せるので以下のようにも書ける(今後はこの表記を利用する)+計算結果の値はベクトルにならずにスカラー(量:大きさ)になる事に注意。尚、ベクトルは太字でも表せるので以下のようにも書ける(今後はこの表記を利用する)
\(\mathbf { A } \cdot \mathbf { B } =x_{ A }\times x_{ B }+y_{ A }\times y_{ B }+z_{ A }\times z_{ B }\) \(\mathbf { A } \cdot \mathbf { B } =x_{ A }\times x_{ B }+y_{ A }\times y_{ B }+z_{ A }\times z_{ B }\)
Line 23: Line 23:
これは式の右辺に \(\cos { \theta  } \)がある事に起因する。ゲームコードでは視線を\(\mathbf { A }\)。主人公から見た敵の存在する方向ベクトルを\(\mathbf { B }\)とした時、この性質を利用する事により敵が視界前方にいるか。背後にいるかが判断できる これは式の右辺に \(\cos { \theta  } \)がある事に起因する。ゲームコードでは視線を\(\mathbf { A }\)。主人公から見た敵の存在する方向ベクトルを\(\mathbf { B }\)とした時、この性質を利用する事により敵が視界前方にいるか。背後にいるかが判断できる
 +
 +**証明 [#o261bc48]
 +
 +内積 \(\mathbf { A } \cdot \mathbf { B }\)  の計算結果は \(\left| \mathbf{A} \right| \left| \mathbf{B} \right| \cos { \theta  } \) と同一になる事の証明
 +(ベクトルとスカラーが式内で混じるので混乱しないようにする事。特に内積の計算中はベクトル扱いだが計算後はスカラーになっている点に留意)
 +
 +三角形を構成する3つのベクトル\(\mathbf{abc}\)を描く
 +この\(\mathbf{c}\)は \(\mathbf{c=b-a}\) により表せる
 +
 +この\(\mathbf{c}\)を三平方の定理により大きさを導く式は
 +\(\left| \mathbf{c} \right| =\sqrt { { (\mathbf{b-a}) }^{ 2 } }\)
 +\(\rightarrow  \left| \mathbf{c} \right| =\sqrt { \mathbf{b\cdot b-2a\cdot b+a\cdot a} } \)
 +\( \rightarrow  { \left| \mathbf{c} \right|  }^{ 2 }=\mathbf{a\cdot a+b\cdot b-2a\cdot b}\)  …①
 +
 +となる。ここでベクトルの大きさの二乗は単ベクトルの内積計算になることを確認する
 +
 +\(\left| \mathbf{ r } \right| =\sqrt { { x }_{ r }^{ 2 }+{ y }_{ r }^{ 2 }+{ z }_{ r }^{ 2 } } \\ \rightarrow { \left| \mathbf{r} \right|  }^{ 2 }={ x }_{ r }^{ 2 }+{ y }_{ r }^{ 2 }+{ z }_{ r }^{ 2 }\\ \rightarrow { \left| \mathbf{r} \right|  }^{ 2 }=\mathbf{r\cdot r}\)
 +
 +①の単ベクトルの内積計算をベクトルの大きさに変換すると
 +\({ \left| { \mathbf{c} } \right|  }^{ 2 }={ { \left| \mathbf{a} \right|  }^{ 2 }+{ \left| { \mathbf{b} } \right|  }^{ 2 }-2\mathbf{a\cdot b} }\quad \rightarrow \quad { c }^{ 2 }={ a }^{ 2 }+b^{ 2 }-2\mathbf{a\cdot b}\) となる
 +
 +どこがスカラーになっていて、どこからベクトルかしっかり認識する必要がある。赤字がスカラー。青地がベクトル
 +&font(Red){\(c^{ 2 }={ a }^{ 2 }+b^{ 2 }-2\)};&font(Blue){\(\mathbf{a\cdot b}\)};
 +
 +辺cの大きさを求める余弦定理の式を②として③を代入する
 +\(c^{ 2 }=a^{ 2 }+b^{ 2 }-2ab\cos { C }\) …②
 +\(c^{ 2 }={ a }^{ 2 }+b^{ 2 }-2\mathbf{a\cdot b}\) …③
 +
 +\(a^{ 2 }+b^{ 2 }-2ab\cos { C } ={ a }^{ 2 }+b^{ 2 }-2\mathbf{a\cdot b}\\ \rightarrow \quad \mathbf{a\cdot b}=ab\cos { C } \)
 +
 +余弦定理の\(ab\)はスカラーなのでベクトルで考えると\(\left| a \right| \left| b \right| \)となる。よって
 +
 +\(\mathbf{a\cdot b}=\left| \mathbf{a} \right| \left| \mathbf{b} \right|\cos { C } \)
« Prev  Next »


トップ   差分 バックアップ 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom