2: 2015-03-20 (金) 11:43:25 osinko |
現: 2015-03-30 (月) 01:23:14 osinko |
| + | TITLE:ベクトルの基礎 |
| #jsmath | | #jsmath |
| #contents | | #contents |
| 添え字表現では \({\mathbf {r} }_{ 0 }=\left( \begin{matrix} { x }_{ 0 } \\ { y }_{ 0 } \\ { z }_{ 0 } \end{matrix} \right) \quad ,\quad {\mathbf { r} }_{ 1 }=\left( \begin{matrix} { x }_{ 1 } \\ { y }_{ 1 } \\ { z }_{ 1 } \end{matrix} \right) \quad ,\quad {\mathbf { r }}_{ 2 }=\left( \begin{matrix} { x }_{ 2 } \\ { y }_{ 2 } \\ { z }_{ 2 } \end{matrix} \right) \) となる | | 添え字表現では \({\mathbf {r} }_{ 0 }=\left( \begin{matrix} { x }_{ 0 } \\ { y }_{ 0 } \\ { z }_{ 0 } \end{matrix} \right) \quad ,\quad {\mathbf { r} }_{ 1 }=\left( \begin{matrix} { x }_{ 1 } \\ { y }_{ 1 } \\ { z }_{ 1 } \end{matrix} \right) \quad ,\quad {\mathbf { r }}_{ 2 }=\left( \begin{matrix} { x }_{ 2 } \\ { y }_{ 2 } \\ { z }_{ 2 } \end{matrix} \right) \) となる |
| | | |
- | 点Oから点Pまでを\(\overline { OP }\)としてベクトルを表す事もある。この2点の位置をベクトルの添え字を使って\(\mathbf{ r }_{ P }\)や\(\mathbf{ r }_{ Q }\)と表すこともできる | + | 点Oから点Pまでのベクトルを\(\overrightarrow { OP } \)と表し距離を\(\left| \overrightarrow { OP } \right| \)と表す。等号を使って\(\overrightarrow { OP } = \mathbf{ r }_{ p }\)(Pへ向かうベクトル)と表す事も出来る |
| + | |
| + | <unityコード例> |
| + | #code(csharp){{ |
| + | Vector3 r0 = Vector3.zero; |
| + | Vector3 r1 = new Vector3 (1f, 2f, 3f); |
| + | Vector3 r2; |
| + | r2.x = 4f; |
| + | r2.y = 5f; |
| + | r2.z = 6f; |
| + | |
| + | Vector3 o = Vector3.zero; |
| + | Vector3 p = Vector3.up; |
| + | |
| + | Vector3 rp = p - o; |
| + | }} |
| | | |
| **ベクトルの大きさと方向 [#r0fe2dd0] | | **ベクトルの大きさと方向 [#r0fe2dd0] |
| 通常、ベクトルは大きさと方向を表す。その他にも位置を表す為にベクトルを利用したり、長さを1として方向を表すベクトルとして扱うことも出来る | | 通常、ベクトルは大きさと方向を表す。その他にも位置を表す為にベクトルを利用したり、長さを1として方向を表すベクトルとして扱うことも出来る |
| | | |
- | ベクトルの長さは「三平方の定理」により成分の二乗の和の平方根\(\sqrt { { x }^{ 2 }+y^{ 2 }{ +z }^{ 2 } } \)で計算できる | + | ベクトルの長さは「[[高校数学/三平方の定理]]」の原理により成分の二乗の和の平方根\(\sqrt { { x }^{ 2 }+y^{ 2 }{ +z }^{ 2 } } \)で計算できる |
- | これをベクトルの大きさ絶対値と呼び\(\left| \mathbf{r} \right|\)と書いたり、単に\(r\)と表す | + | |
- | (こちらは細字になっていることに留意。つまりベクトルを表していない。量を表すスカラー値になっている) | + | |
| | | |
- | 長さを1とした方向を表すベクトルを&font(Red){「正規化(normalized)されたベクトル」。単位ベクトルと呼ぶ。};長さを1にするとはどういったものであるか? | + | \(r=\left| \mathbf{r} \right| = \sqrt { { x }^{ 2 }+y^{ 2 }{ +z }^{ 2 } } \) |
- | それは位置ベクトル\(\mathbf{r}\)を大きさ\(r\)で割ったものになる。この単位ベクトルを\(\mathbf{e}\)とした時、 | + | |
| + | &font(Red){これをベクトルの大きさ絶対値と呼び\(\left| \mathbf{r} \right|\)と書いたり、単にrと表す}; |
| + | (rは細字になっていることに留意。これはベクトルではない。量を表すスカラーになっている) |
| + | &font(Red){長さを1とした方向を表すベクトルを「正規化(normalized)されたベクトル」。単位ベクトルと呼ぶ。};長さを1にするとはどういったものであるか? |
| + | それは位置ベクトル\(\mathbf{r}\)を大きさrで割ったものになる。この単位ベクトルを\(\mathbf{e}\)とした時、 |
| | | |
| 式は \(\mathbf{e}=\frac{\mathbf{r}}{r}=\frac{\mathbf{r}}{\left| \mathbf{r} \right|}=\left( \begin{matrix} \frac { x }{ \sqrt { { x }^{ 2 }+y^{ 2 }+{ z }^{ 2 } } } \\ \frac { y }{ \sqrt { { x }^{ 2 }+y^{ 2 }+{ z }^{ 2 } } } \\ \frac { z }{ \sqrt { { x }^{ 2 }+y^{ 2 }+{ z }^{ 2 } } } \end{matrix} \right) \) となる | | 式は \(\mathbf{e}=\frac{\mathbf{r}}{r}=\frac{\mathbf{r}}{\left| \mathbf{r} \right|}=\left( \begin{matrix} \frac { x }{ \sqrt { { x }^{ 2 }+y^{ 2 }+{ z }^{ 2 } } } \\ \frac { y }{ \sqrt { { x }^{ 2 }+y^{ 2 }+{ z }^{ 2 } } } \\ \frac { z }{ \sqrt { { x }^{ 2 }+y^{ 2 }+{ z }^{ 2 } } } \end{matrix} \right) \) となる |
| + | |
| + | 単位ベクトル\(\mathbf{e}\)は\(\mathbf{r}\)から長さの情報を無くしたものなので純粋にベクトル\(\mathbf{r}\)の方向を表したものとなる |
| + | この大きさrと方向\(\mathbf{e}\)を掛け合わせると再び元のベクトル\(\mathbf{r}\)に復元できる。非常に当たり前のことだがこのような考え方をするのが大事 |
| + | |
| + | #code(csharp){{ |
| + | Vector3 R = new Vector3 (1, 2, 3); |
| + | float r = R.magnitude; |
| + | Vector3 e = R.normalized; |
| + | print ("ベクトル" + R + "長さ" + r + "単位ベクトル" + e); |
| + | print ("元のベクトルへ復元もできる" + e * r); |
| + | }} |
| + | #hr |
| + | 出力: |
| + | ベクトル(1.0, 2.0, 3.0)長さ3.741657単位ベクトル(0.3, 0.5, 0.8) |
| + | 元のベクトルへ復元もできる(1.0, 2.0, 3.0) |
| + | #hr |
| + | unityではこれらの計算を簡単に求める関数があらかじめ標準で準備されているのでこれを利用すると良い |
| + | (ただしこの計算方法は重要な基本的な事柄なので絶対に憶えておく必要がある。最低限、筆算は出来るようにして置く事) |
| + | |
| + | **単位ベクトル [#dfd86305] |
| + | 単位ベクトルの中でもx,y,z軸方向に向いたものは特に重要でこれは下記のように表せる |
| + | |
| + | \({ \mathbf{e} }_{ x }=\left( \begin{matrix} 1 \\ 0 \\ 0 \end{matrix} \right) \quad ,\quad { \mathbf{e} }_{ y }=\left( \begin{matrix} 0 \\ 1 \\ 0 \end{matrix} \right) \quad ,\quad {\mathbf{e}}_{ z }=\left( \begin{matrix} 0 \\ 0 \\ 1 \end{matrix} \right) \) |
| + | |
| + | #code(csharp){{ |
| + | Vector3 ex = Vector3.right; |
| + | Vector3 ey = Vector3.up; |
| + | Vector3 ez = Vector3.forward; |
| + | }} |
| + | |
| + | |
| + | #navi |