Son*_*man 12 opengl interpolation rotation matrix
我有2个旋转矩阵(让我们称之为A和B),其中:
A = 1 0 0
0 0 -1
0 1 0
Run Code Online (Sandbox Code Playgroud)
和
B = -1 0 0
0 0 -1
0 -1 0
Run Code Online (Sandbox Code Playgroud)
这基本上只是一个旋转,相机旋转在后面看自己.显然,我不能直接在矩阵中插值,因为它看起来很奇怪.我已经尝试将矩阵转换为欧拉角,产生2组X,Y,Z角,并试图根据X,Y,Z角的每个分量之间的最小距离确定使用哪个角.这肯定会产生我想要的那种旋转,但是我想不出一个合适的方法来确定插入哪个角度,因为有时导致最小误差的角度组会导致围绕错误的轴/轴旋转.我也尝试了四元数,但这基本上给了我相同的结果.谁能指出我正确的方向?
小智 9
我个人认为使用四元数这种类型的东西更有意义.也就是说,你可以在不使用四元数的情况下完成它.
要注意的是,"差异"矩阵,即将"方向" A变为"方向" 的矩阵B可以通过T = A.tranpose() * B(考虑到你在右边相乘)来计算.获得旋转矩阵后T,您可以转换为Axis-Angle表示(请参阅http://en.wikipedia.org/wiki/Axis-angle_representation).
最后,由于要知道的旋转轴这需要A到B,可以线性插入从零角度先前从计算的角度T.
这相当于使用SLERP.