Matlab 反向四元数旋转三维动画

Matlab 反向四元数旋转三维动画,matlab,3d,rotation,quaternions,Matlab,3d,Rotation,Quaternions,我目前正在开发一个代码,允许使用MATLAB的指南旋转3D球体 使用的方法是使用四元数,实际上效果很好。问题是反向旋转,其中球体旋转一个方向,但当按下UI中的按钮时,它会反转方向。从许多在线资料中可以看出,四元数的逆旋转等于矢量项的求反,并将标量项和矢量项除以幅值。将此实现到MATLAB代码中,球体不会平滑过渡和旋转 我已经测试了SLERP和LERP方法,但这会扭曲球体 有人知道这是不是正确的方法,或者会是什么 提前感谢,, Tony如果您的程序使用四元数Q=[w,x,y,z]正确旋转球体,那么

我目前正在开发一个代码,允许使用MATLAB的指南旋转3D球体

使用的方法是使用四元数,实际上效果很好。问题是反向旋转,其中球体旋转一个方向,但当按下UI中的按钮时,它会反转方向。从许多在线资料中可以看出,四元数的逆旋转等于矢量项的求反,并将标量项和矢量项除以幅值。将此实现到MATLAB代码中,球体不会平滑过渡和旋转

我已经测试了SLERP和LERP方法,但这会扭曲球体

有人知道这是不是正确的方法,或者会是什么

提前感谢,,
Tony

如果您的程序使用四元数Q=[w,x,y,z]正确旋转球体,那么正如您所说,反向旋转是Q*=[w,-x,-y,-z],假设Q是一个单位四元数,则无需对Q*进行归一化。你能提供更多的细节吗?是不是马上从Q跳到Q*?为什么S/LERP不起作用?是的,我已经申请了,但申请并不顺利。当使用SLERP时,球体从一个单位球体扭曲成一个非球形形状,然后再向后弯曲,这非常奇怪。我想要的是从Q1->Q2,然后平滑地回到Q1,但是对向量系数求反不起作用。你如何旋转球体?我感觉球体的中心偏移了全局原点,并且您正在围绕全局框架而不是围绕球体的中心旋转球体。没有代码将球体从中心偏移,除非其默认位置不在全局原点?通过将4x4旋转矩阵R应用于hgrotate,对其进行旋转。