ベクトルの外積を数学的に理解する
ベクトルの外積について,
まず,
- |A×B| = |A||B|sinθ
ベクトルAとBを隣合う2辺とする平行四辺形を考え,
表1 外積A×Bで定められるベクトル
外積の要素 | 求められた外積のベクトルとふたつのベクトルAとBとの関係 | ||
---|---|---|---|
方向 | 角度 | ふたつのベクトルAとBのどちらにも垂直 | ![]() |
向き | ベクトルAからBに向かう回転で右ネジの進む向き | ||
大きさ | |A||B|sinθ | ![]() |
前回の内積の説明で述べたとおり,
逆に,
表2 内積や外積からふたつのベクトルのなす角が特別な場合を確かめる
演算 | 特別な場合 | 互いになす角 |
---|---|---|
内積 | 内積が0 | 垂直 |
外積 | 外積の大きさが0 | 平行 |
3次元空間のベクトルAとBの外積A×Bは,
- A×B =
(aybz - azby, azbx - axbz, axby - aybx)
次回は再び内積をお題として,
- ※1)
- ベクトルに掛け算は定義されていないので,
演算記号 「×」 は 「掛ける」 とは読まない。あえて読み上げるときは, 記号のかたちから 「クロス」 (cross) という。内積の演算記号 「・」 は同じく 「ドット」 (dot) と呼ばれる。 「積」 は英語で"product"なので, メソッド名の"crossProduct"と"dotProduct"は, これらの記号の呼び名に由来する。 - ※2)
- 大きさが0のベクトルも定義されている。そのすべての座標値は0である。
なお,[ヘルプ]で[Vector3D]クラスの 「crossProduct()メソッド」 の項を読むと, 戻り値について本稿執筆時点ではつぎのように説明されている。
- 返されたVector3Dオブジェクトの座標が
(0, 0, 0) の場合, 2つのVector3Dオブジェクトは互いに垂直です。
本文に述べたとおり, このときふたつのVector3Dオブジェクトが表すベクトルは, 互いに 「垂直」 ではなく 「平行」 だ (「Flash Professional CS5/ 5. 」5ヘルプ正誤表 参照)。英文の[Vector3D]のページには, [Comments]の欄に"parallel" (平行) の間違いだろうと突っ込みが入り, Adobeからそれを認める回答が添えられている。 - 返されたVector3Dオブジェクトの座標が
今回解説した次のサンプルファイルがダウンロードできます。
- スクリプト1のサンプルファイル
(CS5形式/約119KB)