我正在尝试编写一个小型 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
编辑:剪毛也有同样的问题!