# NAME

Algorithm::Easing - Calculate eased translations between two positive whole integer values over time

# SYNOPSIS

``````        ## with mediator

use Algorithm::Easing;
use Algorithm::Easing::Mediator;
use Algorithm::Easing::Bounce;

# this example produces traditional 'bounce' output;

my \$translation_mediator = Algorithm::Easing::Mediator->new(Algorithm::Easing::Bounce->new);

# total time for eased translation as a real positive integer value
my \$d = 2.5;

# begin
my \$b = 0;

# change
my \$c = 0;

# time passed in seconds as a real positive integer between each frame
my \$frame_time = 0.0625;

my @p = [319,0];

for(my \$t = 0; \$t < 2.5; \$t += 0.0625) {
\$p = \$translation_mediator->ease_out(\$t,\$b,\$c,\$d)

# plot
...
}``````

# INTRODUCTION

Commonly used in animation, Penner's easing functions are beautiful translations between two positive whole integer values.

The included easing functions in Algorithm::Easing are :

``````    Exponential
Bounce
Linear
Cubic
Quadratic
Quartinion
Quintonion
Sinusoidal
Backdraft
Circular``````

For ease of use, there is an included Mediator class. The Mediator class permits the programmer to select from the spread of easing functions through a single class name.

# METHODS

## ease_none usage :

``````        Parameters :
Let t be time,
Let b be begin,
Let c be change,
Let d be duration,
Results :
Let p be position,

my \$p = \$obj->ease_none(\$t,\$b,\$c,\$d);``````

This method is used for a linear translation between two positive real whole integers using a positive real integer as the parameter for time.

## ease_in usage :

``````        Parameters :
Let t be time,
Let b be begin,
Let c be change,
Let d be duration,
Results :
Let p be position,

my \$p = \$obj->ease_in(\$t,\$b,\$c,\$d);``````

This method is used to ease in between two positive real whole integers using a positive real integer as the parameter for time in the specified fashion.

## ease_out usage :

``````        Parameters :
Let t be time,
Let b be begin,
Let c be change,
Let d be duration,
Results :
Let p be position,

my \$p = \$obj->ease_out(\$t,\$b,\$c,\$d);``````

This method is used to ease out between two positive real whole integers using a positive real integer as the parameter for time in the specified fashion.

## ease_both usage :

``````        Parameters :
Let t be time,
Let b be begin,
Let c be change,
Let d be duration,
Results :
Let p be position,

my \$p = \$obj->ease_both(\$t,\$b,\$c,\$d);``````

This method is used to ease both in then out between two positive real whole integers using a positive real integer as the parameter for time in the specified fashion.

# AUTHOR

Jason McVeigh, <jmcveigh@outlook.com>

# COPYRIGHT AND LICENSE

Copyright 2016 by Jason McVeigh

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.