1

3D 平面とその上の任意の点が与えられ、新しい基底の起源を検討したい場合、次(0,0,0)のことが可能です。(A) この情報から基底を定義しますか? (B) ワールド空間と新しい基底の間で変換できる変換行列を作成しますか?

変換はアフィンであると想定できます。

どうもありがとう!

4

1 に答える 1

3

短い答えはイエスですが、平面しかないので、新しい基底の方向は任意になります。

平面P上に点kがあり、点kを原点にしたいとします。P = (N, d)があります。ここで、 Nは正規化された平面の法線であり、dは原点から平面までの距離です。

この平面上の任意の向きで正規直交基底を決定するには 右R、上U、法線Nの 3 つのベクトルを定義します。

平面の法線に過ぎない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 行がそれぞれ R、U、および N である 3x3 変換行列Mを定義します。

      R
M = ( U )
      N

ここで、平面上の点pを点p'に変換したいとします。

p' = M ( p - k )

これらすべてを 1 つの行列で行いたい場合は、M と平行移動ベクトル -k を組み合わせて 4x4 の同次行列にすることができます。ノート:

  1. 上記の . はベクトル内積です
  2. 上記の x はベクトルの外積です

HTH

于 2012-02-07T19:44:33.440 に答える