小编M.Z*_*hao的帖子

如何使用四元数来描述大于360度的旋转角度?

我正在尝试使用四元数来进行旋转动画.我的算法创建了Quaternions,并且每帧都有slerps.这是我的代码,用于通过轴和旋转角度构造四元数.

template <typename U>
Quaternion(Vector3<U> vec, const float& angle)
{
    vec.normalize();
    float cosa = cos(angle/2);
    float sina = sin(angle/2);
    w = cosa;
    x = sina * vec.x;
    y = sina * vec.y;
    z = sina * vec.z;
}
Run Code Online (Sandbox Code Playgroud)

然后我发现当我试图旋转4π弧度时,动画不起作用,因为我创建的四元数相当于0度.我想知道四元数是否可以表示360度以上的旋转?或者我的动画算法是否需要改进?

c++ math graphics

5
推荐指数
1
解决办法
399
查看次数

标签 统计

c++ ×1

graphics ×1

math ×1