Javascript 动画图形的累积缩放

Javascript 动画图形的累积缩放,javascript,animation,graphics,scale,paperjs,Javascript,Animation,Graphics,Scale,Paperjs,我正试图编写一个小的javascript库来帮助使用paper.js在形状上设置转换动画,但不幸的是,这种图形/数学不是我的主要优势 我已经能够实现简单的变换,例如平移和旋转,通过每帧进行小变换,但我无法计算出累积缩放形状的数学 例如,我的翻译动画代码的粗略伪代码版本: function rotateAnimation(shape, degrees, timeSecs) { var anglePerSecond = degrees / timeSecs, duration

我正试图编写一个小的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上:


编辑:我也有同样的问题与剪切

最终,我的解决方案不是以增量步骤计算缩放/剪切,而是执行转换以计算所需结果,然后使用我已经编写的翻译代码分别为每个点设置动画