uhu*_*huu 2 math 3d interpolation rotation quaternions
我使用slerp在表示旋转的两个四元数之间进行插值.然后将得到的旋转提取为欧拉角,以馈入图形库.这种作品,但我有以下问题; 当旋转两个(一个工作正常)轴在绿色箭头的方向旋转,如左框所示
旋转很快就会从相对的位置跳转到相反的视觉方向,如右框中的红色箭头所示.
从数学角度来看,这可能是合乎逻辑的(尽管不是我),但这是不合需要的.当围绕多个轴旋转时,如何始终跟随绿色箭头直到插值完成,我怎么能实现没有视觉翻转和方向改变的插值?
提前致谢.
Pet*_*ley 10
坦率地说,你对这个问题的描述有点难以理解.但听起来你需要否定你的一个四元数.
请记住,每个旋转实际上可以用两个四元数q和-q表示.但是从q到w的Slerp路径将不同于从(-q)到w的路径:一个将走很远的距离,另一个走向短距离.当你想要短路时,听起来你已经走了很长的路.
尝试获取两个四元数的点积(即4-D点积),如果点积为负,则在执行Slerp之前将-qu1和q2替换为-q1和q2.