haberco / easing
Robert Penner's JavaScript Easing formulas ported to PHP. Similar to jQuery Easing.
Installs: 120
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
Type:package
Requires
- php: >=5.3.0
This package is not auto-updated.
Last update: 2024-05-03 18:03:59 UTC
README
Robert Penner's JavaScript Easing formulas (http://gizma.com/easing/) ported to PHP. Similar to jQuery Easing.
The "Penner easing functions" have become a standard component of tweening/animation libraries in many languages, from jQuery to Processing. http://www.google.com/#q="penner+easing" https://www.linkedin.com/in/robertpenner
I used this to generate an animated series of computer-generated frames generated in ImageMagick assembled with ffmpeg.
Installation
{ "require": { "haberco/easing": "dev-master" } }
Usage
use \Haberco\Easing\Tween; $totalFrames = 30; $startValue = 50; $changeInValue = 100; // final = 150, startValue + changeInValue for($frame=0; $frame<$totalFrames; $frame++) { $position = Tween::easeInCubic($frame, $startValue, $changeInValue, $totalFrames); print "Position is: $position\n"; }
Outputs the following:
Position is: 50
Position is: 50.003703703704
Position is: 50.02962962963
Position is: 50.1
Position is: 50.237037037037
Position is: 50.462962962963
Position is: 50.8
Position is: 51.27037037037
Position is: 51.896296296296
Position is: 52.7
Position is: 53.703703703704
Position is: 54.92962962963
Position is: 56.4
Position is: 58.137037037037
Position is: 60.162962962963
Position is: 62.5
Position is: 65.17037037037
Position is: 68.196296296296
Position is: 71.6
Position is: 75.403703703704
Position is: 79.62962962963
Position is: 84.3
Position is: 89.437037037037
Position is: 95.062962962963
Position is: 101.2
Position is: 107.87037037037
Position is: 115.0962962963
Position is: 122.9
Position is: 131.3037037037
Position is: 140.32962962963
Available Methods
Linear is a convenience utility for animation support.
- linear
Quadratic
- easeInQuad
- easeOutQuad
- easeInOutQuad
Cubic
- easeInCubic
- easeOutCubic
- easeInOutCubic
Quartic
- easeInQuart
- easeOutQuart
- easeInOutQuart
Quintic
- easeInQuint
- easeOutQuint
- easeInOutQuint
Sinusoidal
- easeInSine
- easeOutSine
- easeInOutSine
Exponential
- easeInExpo
- easeOutExpo
- easeInOutExpo
Circular
- easeInCirc
- easeOutCirc
- easeInOutCirc