1-3 ベクトル其の参


 

ウホッ! いい男…

道下正樹(予備校生)



1.内積

1-2.ベクトル其の弐で、ベクトルとスカラーの乗除算とベクトル同士の加減算をやりました。
今回は内積(スカラー積、ドット積ともいう)というのをやってみましょう。
ベクトルA=(Ax,Ay,Az)とB=(Bx,By,Bz)の内積は、AとBの成す角をθとして、次のように定義されます。

(式1-3.1)


定義が二つあるとはどういうつもりかね?

訪問者(激怒している)


本によってまちまちなんですよ…。4次元以上のベクトルを考えると(b)の方がいい気もしますが、
いま手元にある本では2冊とも(a)を定義としてたりします。まぁどっちでもいいや。
(a)から(b)、あるいは(b)から(a)を導くには、次のようにします。

(式1-3.2)

スカラー積の名の通り、A・Bはスカラーとなります。ドット積というのは表記方法からきてるみたいです。

さて、この内積なんですが、3Dプログラムにとって非常に重要な性質をもっています。
まず、(式1-3.1 a)を見てみましょう。

|A|cosθ
|B|cosθ

というのは、AのB上への(BのA上への)正射影を表します。

(図1-3.1)

内積を用いると、AのB上への正射影は

(A・B) / |B|

と書けます。Bが単位ベクトルであれば、単にA・Bとなります。
これはもうちょっと後で使用します。
AをBと平行なベクトルApとBと直交するベクトルArに分解すると、

(式1-3.3)

となります。Bが単位ベクトルであれば、Ap = ( A・B ) Bです。


AとBの成す角θの余弦は、

cosθ = (A・B) / (|A||B|)

となります。AとBがともに単位ベクトルであれば、cosθ = A・Bです。
ライティングなんかで多用します。

さらに、A・B = 0であれば、AとBは直交している(cosθ=0)ことになります。

(式1-3.1 b)から、

A・A = |A|2

eを単位ベクトルとすると、

e・e = 1

となります。


内積の演算法則をまとめます。
任意のベクトルA, B, Cと、任意のスカラーaについて、

(式1-3.4)

が成り立ちます。


2.外積

内ときたら外、スカラーときたらベクトル、ドットきたらコム。クロス。
というわけで次は外積です。ベクトル積、クロス積ともいいます。
外積はこんな感じです。

(式1-3.5)


(a)の尻に引っ付いているeというのは、AとBに垂直な単位ベクトルで、
その正の向きはAをBに一致させる回転(180゜以内)を左ねじに与えたときの ねじの進む方向になります。
よく分からない人は、まず左手で握りこぶしを作り、次いで親指をピンと立ててください。おぅけぃ。
で、AをBに一致させる回転(180゜以内)と親指以外の四指の方向をあわせます。
そのときの親指の向きがeの向きです。
右手座標を採用する場合は、左ねじを右ねじに(左手を右手に)読み替えてください。

外積はこのeと|A||B|sinθの積であるので、AとBに直交するベクトルとなります。
AとBが平行な場合は、AxBは零ベクトルになります。
|AxB|(外積の絶対値)は、図から明らかなように、AとBから作られる平行四辺形の面積と等しくなります。
AとBが直交した(sinθ=1)単位ベクトルであれば、AxBも単位ベクトルとなります。
次の演算法則が成り立ちます。

(式1-3.6)

外積は法線を求めるときなんかに良く使います。法線というのは面に垂直な直線のことを言います。
例えば、同一直線上にない点ABCが与えられたとすると、ABCを含む平面の法線Nは、

N = ( B - A ) x ( C - A )

で求められます。

直交座標の基本ベクトルi, j, kの外積は次のようになります。

(式1-3.7)

(式1-3.7)から、基本ベクトルの内2つが定まれば、残りは外積で求められることが分かります。
X, Y, Zで書くと、

X = Y × Z
Y = Z × X
Z = X × Y

ちゅう感じです。こいつは第1章のテーマである骨で多用してます。

第1章での外積の用途はこんなもんなんですが、特に物理学では外積の出番は多いです。
3Dプログラムに関わりが深いところでは、剛体の角運動なんかで多用します。


外積の成分表式(式1-3.5b)の記憶しやすい形として、こんなのがあります。

(式1-3.8)

この右辺を形式的に行列式とみて計算すると(式1-3.7b)になります。
"行列式ってなんじゃらほい"って人は、こんなんがあったことだけ覚えておいてください。
行列式の説明はもうちょっと後でやります。


さて外積なんですが、(式1-3.5a)をその定義とするってのは
さすがにちょっと引っかかりますね。左ねじやら左手って…。
というわけで、

i) A⊥V, B⊥Vで、
ii) |V|はAとBのつくる平行四辺形の面積に等しく、
iii){A, B, V}が正の向きとなる

ようなベクトルVをA x Bという。ぉおすっきり。"正の向き"ってのは行列式の符号で決めます。
こいつから(式1-3.5)は導けます。証明は省略。興味のある方は、

「基礎数学選書23 テンソル解析 (裳華房)」
「情報数学講座13 グラフィックスの数理 (共立出版)」

あたりをどーぞ。

<2004/02/12追記>
 外積を厳密に定義するにはグラスマン代数なるものがいるそうです。わたしゃそんなもん知りません。


< 誰か教えてください >
D3DXには4次元ベクトルの外積なるもの(D3DXVec4Cross)があるんですが、
4次元ベクトルの外積ってどんなん?
「なるほどベクトル解析 (海鳴社)」という本では、外積は3次元ベクトルでしか定義できない
と明記してあったんですが…。おしえて偉い人。


目次に戻る
行列其の壱