1.ベクトルとは
ベクトルとは、大きさと向きを持った量のことです。ベクトルには、平面上の(x,y)で表される2次元ベクトルと、3次元空間上の(x,y,z)で表される3次元ベクトルがあります。このページでは、2次元のグラフィック表示だけでなく、3次元のグラフィック表示まで解説しますので、ベクトルは、原則として3次元ベクトルとして扱います。(マッピングや射影などにより、2次元ベクトルを利用する場合もあります。)
ベクトルは、太字で表現したり、上に→を付けて表現したりしますが、このページでは、ベクトルは太字で表現することにします。
また、プログラムでベクトルを使う場合は、ベクトルの成分表示を使います。成分表示の方法には、配列を使用する方法と、構造体を使用する方法がありますが、配列の方が行列式として扱いやすいため、配列を使用して表現することにします。
2.図形の媒介変数表示
直線や曲線の数式の表現方法に、媒介変数表示があります。
媒介変数表示のことをパラメトリック表現とも呼びます。
y = ax + b に対して、 P(t) = (1-t) P(0) + t P(1) の表現が媒介変数表示となります。
媒介変数を利用すると、線分の始点から終点に向かって、媒介変数の値を変更するだけで、各座標値を求めることができます。
曲面の場合は、u方向とv方向の、2つの媒介変数の値を変更することにより、メッシュ状の曲面座標値を求めることができます。
3.ベクトルの内積
ベクトルの内積は、次のように定義されます。
A・B=|A|・|B|cosθ
これを成分表示すると、
A・B=AxBx+AyBy+AzBz
となります(図4‐6‐1)。ベクトルの内積は、A・Bまたは、(A,B)で表わします。
Aが単位ベクトルのときBをAに射影した点となります。
ベクトルの内積は、方向を持たないスカラー量です。
グラフィックの世界では、内積をいろいろな処理に使用しています。そこで内積のグラフィックへの応用例を次に述べます。
・内積の応用例
(1)2つのベクトルが平行かどうかの判定
2つのベクトルが平行かどうかは、2つのベクトルの内積とそれぞれのベクトルの
長さの積の大きさで判定できます。また、平行な2つのベクトルの向きが同じかどうかは、そのときの符号で判定できます。
A・B=|A||B| (2ベクトルは、平行で同方向)
A・B=−|A||B| (2ベクトルは、平行で逆方向)
(2)2つのベクトルが垂直かどうかの判定
2つのベクトルの角度を求めるときは、2つのベクトルの内積の値が0かどうかで判断できます。
A・B=0 (2つのベクトルは、垂直)
(3)2つのベクトルの角度の計算
2つのベクトルの角度を求めるときには、2つのベクトルの内積をそれぞれのベクトルの長さの積で割ることにより求めることができます。
cosθ=
(4)ベクトルの射影
ベクトルBをベクトルAに射影したベクトルCを求めるときにも内積を利用します。
C=
4.ベクトルの外積
ベクトルの外積は、次のように定義されます。
A*B=(AyBz−AzBy,AzBx−AxBz,AxBy−AyBx)
ベクトルの外積は、方向を持ったベクトル量でその方向は、2つのベクトルに対して垂直な方向となります(図4-7-1)。
外積の大きさは、上のベクトル成分の長さを計算してもよいですが、次のように定義することもできます。
|A*B|=|A||B|sinθ
これは、AとBで囲まれる平行四辺形の面積を表わします。即ち、ベクトルの外積とは、2つのベクトルに対して垂直な方向を持ち、2つのベクトルからできる平行四辺形の面積と同じ長さを持つベクトルだと考えられます。
グラフィックの世界では、外積をいろいろな処理に使用しています。そこで外積のグラフィックへの応用例を以下に述べます。
・外積の応用例
(1)2つのベクトルによってできる平行四辺形の面積の計算
外積の性質より2つのベクトルによってできる平行四辺形の面積Sを簡単に求めることができます。
S=|A*B|
(2)2つのベクトルによってできる三角形の面積の計算
2つのベクトルによってできる三角形の面積Sを簡単に求めることができます。
(3)2つのベクトルに垂直なベクトルの計算
2つにベクトルが乗っている平面の法線ベクトルを求めるときなど2つのベクトルに垂直なベクトルを求めるときに使用します。このとき、2つのベクトルが単位ベクトルで直交していれば、求められたベクトルも単位ベクトルになります。
(4)平面上の閉じた領域の面積の計算
平面上の閉じた領域の面積を求めるときは外積を利用します。まず、全ての線分に対して外積を求めていき、その面積を合計することにより閉領域の面積を求めます。
(5)平面上の閉じた線分列の向きの判定
平面上の閉じた領域を形成する線分列の向きが平面の法線ベクトルの方向から見たときに左回りか右回りかを判定するときに使用します。これは、面の法線ベクトルの向きを調べるときなどにも使用されます。判定方法は、求めた面積の正か負かによって判定します。
S>0のとき、左回り
S<0のとき、右回り