我正在尝试编写一个小的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
编辑:剪毛也有同样的问题!
答案 0 :(得分:0)
我最终的解决方案不是计算增量步骤的比例/剪切,执行转换以计算所需的结果,然后使用我已编写的转换代码单独为每个点设置动画< / p>