在这种情况下,欧拉角转换失败

时间:2017-10-26 16:15:10

标签: math unity3d 3d

在这种情况下我尝试了欧拉角度变换,但是我找不到正确的xyz序列来获得目标方向。

P.S。我遵循x-> y-> z的惯例进行欧拉角变换。

P.S。欧拉角变换:每次旋转相对于原始帧发生。

enter image description here

z轴的旋转只能切换y和x,但不会导致最终目标。 什么是正确的方法?

最终答案:

enter image description here

@Rooscannon,非常感谢你!

2 个答案:

答案 0 :(得分:1)

旋转(45,180,90) 这是数学 http://www.staff.city.ac.uk/~sbbh653/publications/euler.pdf

在您的用例中获取旋转矩阵非常简单。 3X3旋转矩阵的列是新位置中的旋转单位矢量x,y,z。例如,x最初是(1,0,0)并且在旋转之后(0,-1,0)。 y =(-sqrt(2)/ 2,0,-sqrt(2)/ 2),z =(sqrt(2)/ 2,0,-sqrt(2)/ 2)。
所以你的旋转矩阵就像

        0   -0.7   0.7
 R =   -1    0     0 
        0   -0.7  -0.7 

尽管使用确切的值。如果不安全,则行列式应为1,并且每列和行的范数应为1.

答案 1 :(得分:0)

y上旋转135。然后在z上旋转-90以获得所需的天使。

您的最终轮换将是:

(0,135,-90)

希望这有帮助。