动画图形的累积缩放

时间:2013-01-14 16:05:25

标签: javascript animation graphics scale paperjs

我正在尝试编写一个小的javascript库来帮助使用paper.js动画形状转换动画,但不可思议的是这种图形/数学并不是我的关键力量!

我已经能够通过每帧进行小的变换来实现简单的变换,例如平移和旋转,但我无法计算出数学以累积缩放形状。

例如,我的翻译动画代码的粗略伪代码版本:

function rotateAnimation(shape, degrees, timeSecs) {
    var anglePerSecond = degrees / timeSecs,
        duration = timeSecs;
    shape.onFrame = function(e) {
        var timePassedSinceLastFrame = e.delta, // in seconds
            rotateAmount = anglePerSecond * timePassedSinceLastFrame;
         shape.rotate(rotateAmount);
         duration -= timePassedSinceLastFrame;
    }
}

我无法弄清楚如何使这种方法适用于缩放,因为我不知道如何计算每帧的缩放量。如果有人对此有任何建议,我们将不胜感激!如果你想查看实际的代码,而不是上面我的私有伪代码,那就是github:https://github.com/jordanwallwork/paper.animate/blob/master/paper.animate.js

编辑:剪毛也有同样的问题!

1 个答案:

答案 0 :(得分:0)

我最终的解决方案不是计算增量步骤的比例/剪切,执行转换以计算所需的结果,然后使用我已编写的转换代码单独为每个点设置动画< / p>