使用欧拉角旋转wobj顶点

时间:2013-03-23 00:35:43

标签: matlab rotation wavefront

你好专家!

我有一个Euler旋转矩阵:

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'

我得到错误的轮换。有人可以帮帮我吗?

问题说明: The box is not rotated like the red system (X,Y,Z)

0 个答案:

没有答案