2

回転して目的のスタンスに配置された構造の 3D モデリング情報 x、y、z 座標を含む配列があります。回転や配置のない同様の構造を持つ新しい配列もあります。新しい構造の座標は [0 0 0] から始まります。適切に回転された配列の最初の要素を非構造化配列に追加することで、構造体の最初の部分を適切な場所に配置するのは簡単です。私の問題は今回転です。新しい要素を回転させて、適切に回転した配列の x、y、z の角度に一致させるにはどうすればよいですか? ありがとうございました

4

1 に答える 1

2

データからupfrontrightの3 つの代表的なベクトルを見つけることができる場合、回転行列は次のようになります。

[rx ux fx ox]
[ry uy fy oy]
[rz uz fz oz]
[ 0  0  0  1]

ここで、O = [ox oy oz] は原点です

これは、回転した構造のジオメトリを十分に知っている場合に実行できます。

それが機能する理由は、恒等行列と回転行列の解釈からわかります。
参照座標系では

 'Right' = [1 0 0 0], 
 'Up'    = [0 1 0 0],
 'Front' = [0 0 1 0],

 Multiplying each of these by the rotation matrix:
   [a d g 0]   Right*R = [a b c 0];
 R=[b e h 0]   Up * R  = [d e f 0];
   [c f i 0]   Front*R = [g h i 0];
   [0 0 0 1] 

 If there is no rotation, R = I == identity matrix; 

 Then Right * I = [1 0 0 0]; Up*I = [0 1 0 0 ]; Front*I = [0 0 1 0];

逆に、ジオメトリに立方体が含まれていることがわかっている場合 (おそらくスケーリングされている場合もあります...)
次に、回転した頂点の配列内のどの点が点 oFRUに対応するかを知ることであり、立方体の場合は主に問題になります選択の...

 U
 |
 |        ___---F
 |  ___---    
 o--
    --__
        --R

フロント ベクトル = (Fo)/|Fo|、右 = (Ro)/|Ro|、上 = (Uo)/|Uo|

于 2012-10-06T08:29:37.540 に答える