以对数方式旋转回0度

时间:2012-07-03 01:00:31

标签: math rotation exponential

当用户松开手指时,我希望我的精灵旋转回0度。目前它是这样完成的:

if (touching == NO && rotationValue != 0)
{
    if (rotationValue < 180 && rotationValue < 0)
    {
        rotationValue += 1.5; 
    }
    else
    {
        rotationValue -= 1.5;
    }

    if (rotationValue < 1 && rotationValue > -1)
        rotationValue = 0;
}

当精灵以对数方式旋转时,任何人都可以帮助我,所以它开始旋转得更快,然后在达到0时减速。

1 个答案:

答案 0 :(得分:1)

基本上,你想减去每个刻度线留下的差异的一小部分。 0.125这里是一个任意参数,你可以改变它来改变整体速度。

if (fabs(rotationValue) < 0.00000000000000000001){
    rotationValue = 0.0;
} else {
    rotationValue -= .125 * fabs(rotationValue);
}