新しい平面の起点を考えたいと思う3D平面とその上の任意の点を考えると、(A)この情報から基底を定義することは可能ですか?そして、(B)私が世界の空間と新しい基盤との間で変換することを可能にする変換マトリックスを作りますか?3D平面と既知の原点から新しい基底(変換行列)を計算するにはどうすればよいですか?
変換がアフィンであると仮定できます。
ありがとうございました!
新しい平面の起点を考えたいと思う3D平面とその上の任意の点を考えると、(A)この情報から基底を定義することは可能ですか?そして、(B)私が世界の空間と新しい基盤との間で変換することを可能にする変換マトリックスを作りますか?3D平面と既知の原点から新しい基底(変換行列)を計算するにはどうすればよいですか?
変換がアフィンであると仮定できます。
ありがとうございました!
答えは「はい」ですが、飛行機があるだけなので、新しい基盤の向きは任意です。
は、あなたが飛行機Pに位置し、あなたの原点とポイントKをしたいポイントKを考えてみましょう。 P =(N、d)Nは正規化された平面法線であり、dは原点からの平面までの距離です。 3つのベクトルを右アップR、U及び正常N
定義我々はすでに正常に過ぎないNを有し、この平面上で任意の向きに正規直交基底を決定するために
平面
U = (0,1,0)
// If U is pointing in almost the same direction as N, change it
if (U.N > 0.7071) U = (0, 0, 1);
R = normalise (U x N)
U = normalise (N x R) // U was not orthonormal
次に3×3変換行列を定義Mここで、行列の3行はそれぞれR、UおよびNです。
R
M = (U)
N
今、私たちはあなたがあなたの平面上の点P」にポイントPを変換したいとしましょう。
p' = M (p - k)
このすべてを1つの行列で処理したい場合は、Mと翻訳ベクトル-kを組み合わせて4x4均質行列にすることができます。 注
されているHTH
。