*概要 [#g6163d7e] ベクトルは、向きと大きさを持った量のことです。~ 物理や画像処理をはじめ、様々な分野で利用されています。 高校あたり?で習うので、すでに知っている方も多いでしょうし、 2D,3D処理においては四則演算並に基本事項です。~ グラフィック処理の必要なゲームなどを作る場合、必須の知識といっても過言ではありません。 *ベクトルの表現 [#s72af68f] **ベクトル [#if18748f] ベクトルは適当な名前の上に→を付けて&mimetex(\vec{a});などと表現します。~ (他にも様々な表現があり、専門書などでは太字で表現するものが多いです。) **数ベクトル [#f8c02d1e] 数ベクトルとは、数値を縦または横に並べた、行列の一種です。~ &mimetex(\vec{a} = ( a \quad b \quad c));~ のように横に並べたものを、行ベクトルまたは横ベクトル。~ &mimetex(\vec{a} = \begin{pmatrix} a \\ b \\ c \end{pmatrix});~ のように縦に並べたものを、列ベクトルまたは縦ベクトルと呼びます。~ CGの分野では行ベクトル、数学の分野では列ベクトルがよく使用されます。 一応、CG系?ということで、ここでは行ベクトルを使用します。特に断りがなければ以降、ベクトルは行ベクトルを指します。 **ベクトルの2点による表現 [#a7aa89bc] ベクトルは2点間を結ぶ線分として表すことができます。 点P→点Qによって表される線分のベクトルを&mimetex(\vec{PQ}); と表現します。~ また、&mimetex(\vec{PQ});を数ベクトルで表現することができます。~ 2点の座標を、~ &mimetex(P(p_1,p_2));, &mimetex(Q(q_1,q_2));~ とすると、~ &mimetex(\vec{PQ} = ( q_1-p_1 \quad q_2-p_2));~ となります。 **ノルム [#ge5a8383] ベクトルは方向を持つと同時に大きさ(長さ)も持ちます。ベクトルの大きさをノルムといい、~ &mimetex(\vec{a});のノルムを&mimetex(\mid\mid \vec{a} \mid\mid);と表します。~ 大体一般的には、実際の計算は二乗して足してルート!平面、立体における原点からの距離の計算と一緒です。~ &mimetex(\vec{a} = (1 \quad 2 \quad 3));だったら~ &mimetex(\mid\mid \vec{a} \mid\mid = \sqrt{1^2+2^2+3^2} = 3.7417);~ です。~ 特にユークリッドノルムや2-ノルムと言います。(他に変なのもあるわけだ) *ベクトルの演算 [#yc36aeea] **要素 [#l4c74ec7] ベクトルの実際の数値部一つ一つを要素といいます。~ (1 2 3)~ だったら~ 1 と 2 と 3 はそれぞれ(1 2 3)の要素。~ (a_1 b_1)~ だったら~ a_1, b_1はそれぞれ(a_1 b_1)の要素です。~ **スカラー [#u00092e8] ベクトルでない通常の数値をスカラーと呼びます。1とか2とか3ですね。(1 2)はベクトル。~ ベクトルの一つ一つの要素はスカラーともいえますね。 **加減算 [#rd4a6edc] ベクトル同士の演算です。~ 単純に各要素を加算(減算)するだけです。~ &mimetex((a_1 \quad a_2 \quad a_3) + (b_1 \quad b_2 \quad b_3) = (a_1+b_1 \quad a_1+b_2 \quad a_1+b_2));~ &mimetex((a_1 \quad a_2 \quad a_3) - (b_1 \quad b_2 \quad b_3) = (a_1-b_1 \quad a_1-b_2 \quad a_1-b_2)); **乗算除算 [#l28cec30] 乗除算はスカラーとベクトルの演算で、ベクトル同士を乗算除算することはできません。~ 各要素にスカラーを乗算(除算)します。~ &mimetex(3(a_1 \quad a_2 \quad a_3) = (3a_1 \quad 3a_1 \quad 3a_1)); **内積 [#j0668103] ベクトル同士の演算です。演算結果はスカラーとなります。~ 2つのベクトルのなす角を&mimetex(\theta);としたとき、~ &mimetex(\vec{a}\cdot\vec{b} = \mid\mid a \mid\mid \mid\mid b \mid\mid cos\theta);~ という演算です。~ または、数ベクトルの要素を使って~ &mimetex(\vec{a} = (a_1 \quad a_2 \quad a_3), \vec{b} = (b_1 \quad b_2 \quad b_3));~ とすると~ &mimetex(\vec{a} \cdot \vec{b} = a_1b_1 + a_2b_2 + a_3b_3);~ で計算することができます。