1

こんにちは専門家!

私はオイラー回転行列を持っています:

a11 = cos(psi)*cos(phi) - cos(theta)*sin(phi)*sin(psi);
a12 = cos(psi)*sin(phi) + cos(theta)*cos(phi)*sin(psi);
a13 = sin(psi)*sin(theta);
a21 = -sin(psi)*cos(phi) - cos(theta)*sin(phi)*cos(psi);
a22 = -sin(psi)*sin(phi) + cos(theta)*cos(phi)*cos(psi);
a23 = cos(psi)*sin(theta);
a31 = sin(theta)*sin(phi);
a32 = -sin(theta)*cos(phi);
a33 = cos(theta);

rotationMatrix = [a11 a12 a13; a21 a22 a23; a31 a32 a33]

回転行列が正しいと確信しています。この問題は、wobj ファイル (この場合はボックス) に回転を適用しようとすると発生します。

次のようなボックスを回転させたい:

vertices =

 0     0     0
 0     2     0
 0     2     2
 0     0     2
 2     0     2
 2     0     0
 2     2     0
 2     2     2

私が行った場合:

rot= rotationMatrix*vertices'

回転後、頂点を再び元に戻します

FV.vertices = rot'

回転を間違えます。誰でも私を助けてもらえますか?

問題の図: ボックスは赤いシステムのように回転しません (X,Y,Z)

4

0 に答える 0