Files
UnrealEngine/Engine/Source/ThirdParty/AHEasing/README.md
2025-05-18 13:04:45 +08:00

50 lines
1.7 KiB
Markdown

AHEasing
========
A supplemental library of easing functions for C, C++, and Objective-C
--------
The useful portion of this project consists of two parts:
1. A stand-alone easing function library, implemented in C (easing.h/easing.c)
2. CAAnimation category methods to more easily use easing in your Core Animation projects
Supported functions
--------
The following types of easing functions are supported:
* Linear
* Quadratic
* Cubic
* Quartic
* Quintic
* Sine
* Circular
* Elastic
* Bounce
* Back
Each of these has corresponding ease-in, ease-out, and ease-in-out variants. Here's a [handy cheat sheet](http://easings.net) that includes visualizations and animation demos for these functions.
The core easing functions are implemented as C functions that take a time parameter and return a progress parameter, which can subsequently be used to interpolate any quantity.
Goals
--------
The design goals of AHEasing are:
* To be as fast as conceivably possible while maintaining human readability
* To be portable to any system with a C runtime
* To elucidate the mathematical underpinnings of common easing functions
Inspiration
--------
This work is a spiritual descendent (not to say derivative work) of works done by the following individuals:
* Robert Penner (http://www.robertpenner.com/easing/)
* George McGinley Smith (http://gsgd.co.uk/sandbox/jquery/easing/)
* James Padolsey (http://james.padolsey.com/demos/jquery/easing/)
* Authors of jQuery (http://plugins.jquery.com/project/Easing)
* Matt Gallagher (http://cocoawithlove.com/2008/09/parametric-acceleration-curves-in-core.html)
* Jesse Crossen (http://stackoverflow.com/questions/5161465/how-to-create-custom-easing-function-with-core-animation)