AHEasing
为C, C++和Objective-C提供的缓动函数的补充库
此项目的有用部分由两个部分组成
- 一个独立的缓动函数库,用C实现(easing.h/easing.c)
- CAAnimation类别方法,以便更轻松地在使用Core Animation项目时使用缓动
支持的函数
以下类型的缓动函数得到支持
- 线性
- 二次方
- 三次方
- 四次方
- 五次方
- 正弦
- 圆形
- 弹性
- 反弹
- 后仰
每种都对应着缓入、缓出和缓入缓出的变化。这是一张有用的速查表,其中包括这些函数的可视化和动画演示。
核心缓动函数作为接受时间参数并返回进度参数的C函数实现,可以随后用于任何数量的插值。
目标
AHEasing的设计目标是
- 尽可能快的同时保持人类的可读性
- 可移植到任何具有C运行时的系统
- 阐明常见缓动函数的数学基础
灵感来源
以下人员的作品是这个工作的精神继承者(不是衍生作品)
- 罗伯特·潘纳(http://www.robertpenner.com/easing/)
- 乔治·麦金利·史密斯(http://gsgd.co.uk/sandbox/jquery/easing/)
- 詹姆斯·帕多莱西(http://james.padolsey.com/demos/jquery/easing/)
- jQuery开发者(http://plugins.jquery.com/project/Easing)
- 马特·加拉格尔(http://cocoawithlove.com/2008/09/parametric-acceleration-curves-in-core.html)
- 杰西·克罗斯南(http://stackoverflow.com/questions/5161465/how-to-create-custom-easing-function-with-core-animation)