プロが教える店舗&オフィスのセキュリティ対策術

以下のような 3本の位置ベクトルによって示される3次元空間に、4次元
データを射影し、次元縮小する方法を教えてください。

 A = [a1 a2 a3 a4]、 B = [b1 b2 b3 b4]、 C = [c1 c2 c3 c4]

射影行列を求め、各データ点との積を求めるのだと思いますが、やり方
が分かりません。
仕事で次元縮小のプログラムを作らなければならないので、大変困っています。どなたか、助けてください。

A 回答 (3件)

4次元空間上の 3点 A(a), B(b), C(c) と O が作る平面上に点 P(p) が存在する条件は


det(a b c p) = 0.
正射影なら, これから法線ベクトルがわかるのでなんとかなるんじゃない?
    • good
    • 0

どの補空間に沿って射影するのでしょう?


正射影(直交補空間に沿う射影)ならば、
平面ABCの法線ベクトルを、外積 ↑AB×↑AC などで求め、
単位法線ベクトル ↑n を使って、
点 ↑p を ↑p - ↑p・↑n + ↑OA・↑n へ写像すればよい。
定数項 ↑OA・↑n が付くので、一次変換ではありません。

「次元縮小」という言葉が判らないのと、
「プログラムを作らなければならないので」の件が気になります。
ひょっとして、CGでよく使われる
同次座標の「投影変換」のことを言っているのでしょうか?
線型代数で言う「射影」とは違うので、「射影変換」と呼ぶと
紛らわしいのですが。

参考URL:http://homepage2.nifty.com/skimp-studio/htm/craw …

この回答への補足

分かっていなくて申し訳ありません。正射影ではないかと思います。
データは、X, Y, Z , Energy の4軸に、強度をもっています。

見せられた外国のソフトの画面キャプチャーでは、
A = [1 0 0 0]、 B = [0 1 0 0]、 C = [0 0 0 1] と入力し、
Projections を実行するとZ軸が無くなり、X, Y, Energy の3軸データに変換されていました。

A, B, C のキャプションに、Orthogonal Viewing Axis とあるので、
A B Cには、直交ベクトルを入力させるものと思います。

3次元データを平面に射影すると2次元データになるので、4次元データ
を任意の空間に射影すれば3次元データになるのではないでしょうか。
線形代数の本を買ってきて読み始めたのですが、時間ばかりが・・・

あと、4次元ベクトルの外積を求める方法がわかりません。教えて頂けませんか。

補足日時:2008/07/11 09:59
    • good
    • 0

「ABC (と原点 O) を通る超平面上に射影する」ということでしょうか. 3次元のときの方法をベタに拡張すればできるんだけどねぇ

. もっときれいな方法はあるかなぁ.
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!