4次元ユークリッド空間のベクトルの基底と成分は4個ずつで、いつくかの流儀があるようですが、ここでは、x, y, z, uの文字を採用します。
3個の4次元ベクトル`(px, py, pz, pu)と`(qx, qy, qz, qu)と`(rx, ry, rz, ru)の外積のようなもの、つまり、`p、`q、`rが作る平行六面体に垂直なベクトル`(sx, sy, sz, su)を作りたい訳。結論から言うと、
|(`ex, `ey, `ez, `eu)(px, py, pz, pu)(qx, qy, qz, qu)(rx, ry, rz, ru)|
となります(`exはx軸方向の単位ベクトル。`ey、`ez、`euも同様)。行列式の要素に数値では無く単位ベクトルが来ているのも前項と同様です。
これを展開して成分表示すると、
`s = `(-|(py, pz, pu)(qy, qz, qu)(ry, rz, ru)|,
|(pz, pu, px)(qz, qu, qx)(rz, ru, rx)|,
-|(pu, px, py)(qu, qx, qy)(ru, rx, ry)|,
|(px, py, pz)(qx, qy, qz)(rx, ry, rz)|)
となり、符号(負号)が微妙に付いているのは、この記号順では奇置換になるからです。
3行3列の行列式の計算式は、たとえば、
|(px, py, pz)(qx, qy, qz)(rx, ry, rz)|
= px*qy*rz + py*qz*rx + pz*qx*ry - px*qz*ry - py*qx*rz - pz*qy*rx
などです。
このとき、4次元ベクトル`sは、`pと`qと`rが作る平行六面体(原点と`pと`qと`rの作る四面体でも同じ事)と方向が垂直で、長さはその平行六面体の体積と等しくなります。平行六面体が左手の場合は体積は負になり、方向は右手の場合とは逆になります。
後は3次元と同様にして、4次元の操作が可能となる…、はずです。
ちなみに、表計算ソフトには行列式の関数、mdetermがあるので、任意の次元で同様の計算が可能となります。今のところ、8次元まで対応できたら良いので、それほど大量の計算が必要、ではないと思います。
で、今更ですが、現在、随伴行列(adjoint matrix)と呼ばれているのは、上述のものとは異なり、エルミート行列の定義で出てくる、正方行列の要素の共役複素数の転置行列を指すことが普通と思います。
しかし、多分、翻訳中の古典幾何学書に出てくる随伴行列は、このコンピュータグラフィックスの入門書に書かれていた、正方行列の要素の余因子の転置行列、つまりこれを元の正方行列の行列式で割れば逆行列になる行列、みたいです。
本ブログの読者には誠に申し訳ないのですが、後者はいまだに完全には追跡できていません。同じ用語なのは、共役複素数も余因子も双対を取ること(2回の操作で元に戻る)ですから、なんとなく理解できます。
まあこれで、私は4次元正多胞体(10種の星形を含む)のグラフィック表示が出来ると考えている訳で、その記念書き込みです。