【问题标题】:Animation time based on quaternion difference基于四元数差的动画时间
【发布时间】:2012-05-20 04:11:45
【问题描述】:

我正在尝试使用两个四元数来调整相机的方向,这取决于它们之间的差异。因此,对于最小的旋转,我希望动画花费更少的时间,而更大的旋转需要更长的时间。我想我想以一定的速度旋转相机。

有没有什么方法可以将偏航、横滚和俯仰结合起来得到一个弧度,这样我就可以用它来计算每帧要应用的四元数的百分比?

【问题讨论】:

    标签: c# 3d quaternions ogre


    【解决方案1】:

    如果您想区分两个四元数,只需使用增量四元数的ToAngleAxis。它返回角度(你需要这个)和两个四元数之间的旋转轴。

    您可以使用四元数和计算出的速度来计算spherical interpolation(简称 slerp),它允许您计算相机方向的中间状态。

    【讨论】:

    • 谢谢!虽然这似乎适用于大多数角度,但我有时会得到一个 NaN(我相信当方向与轴对齐时会发生这种情况)。有什么想法吗?
    • 似乎这是由 Ogre 中的错误引起的:ogre3d.org/forums/viewtopic.php?p=426695
    • 用这个做实验,如果是bug我没办法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-17
    • 1970-01-01
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多