### Easing equations (motion tween) for Lua

Well, if someone wants to start and manage a wiki about jit.gl.lua, I

think it could be quite useful, but it’s not something I can really

get too much involved with. Of course that doesn’t me I wouldn’t post

content.

wes

On 8/15/07, MarkDavid Hosale

> Hi Alexandre-

> This is cool stuff. I’ve been getting into using Lua with Jitter as

> well. I wonder how many of us are out there using it? Maybe there

> should be (or is there already?) a jit.gl.lua wiki or something for

> things like this. Does anyone else think this is a good idea? Wes?…

> -MarkDavid

>

>

> On Aug 14, 2007, at 5:13 PM, Alexandre Quessy wrote:

>

> > Hi all,

> > I am getting quite familiar with Lua and OpenGL. This is a great

> > tool. It works very well for 2D and 3D graphics using textures and

> > such.

> >

> > I ported some of Robert Penner’s easing equations to Lua in order

> > to create motion effects with jit.gl.lua. Here they are, for you

> > delight. Maybe I could port them all and distribute in a more

> > formal way, but I don’t think I will. (exercise left to the reader !)

> >

> > Cheers,

> >

> > —–

> > — Robert Penner easing equations for Adobe ActionScript.

> > — Translated to Lua (only some of my favorites)

> > — see http://www.robertpenner.com/easing/

> > — Open source under the BSD License.

> > — Copyright (c) 2001 Robert Penner

> > — All rights reserved.

> >

> > — simple linear tweening – no easing

> > — t: current time, b: beginning value, c: change in value, d:

> > duration

> > function linearTween(t, b, c, d)

> > return c*t/d + b

> > end

> >

> > ————/ QUADRATIC EASING: t^2 ——————/

> >

> > — quadratic easing in – accelerating from zero velocity

> > — t: current time, b: beginning value, c: change in value, d:

> > duration

> > — t and d can be in frames or seconds/milliseconds

> > function easeInQuad(t, b, c, d)

> > return c*(t/d)*t + b

> > end

> >

> > — quadratic easing out – decelerating to zero velocity

> > function easeOutQuad(t, b, c, d)

> > return -c *(t/d)*(t-2) + b

> > end

> >

> > ————/ SINUSOIDAL EASING: sin(t) ————–/

> >

> > — sinusoidal easing in – accelerating from zero velocity

> > — t: current time, b: beginning value, c: change in position, d:

> > duration

> > function easeInSine(t, b, c, d)

> > return -c * math.cos(t/d * (math.pi/2)) + c + b;

> > end

> >

> > — sinusoidal easing out – decelerating to zero velocity

> > function easeOutSine(t, b, c, d)

> > return c * math.sin(t/d * (math.pi/2)) + b;

> > end

> >

> > — sinusoidal easing in/out – accelerating until halfway, then

> > decelerating

> > function easeInOutSine(t, b, c, d)

> > return -c/2 * (math.cos(math.pi*t/d) – 1) + b;

> > end

> >

> > ————/ EXPONENTIAL EASING: 2^t —————-/

> >

> > — exponential easing in – accelerating from zero velocity

> > — t: current time, b: beginning value, c: change in position, d:

> > duration

> > function easeInExpo(t, b, c, d)

> > if (t==0) then

> > return b

> > else

> > return c * math.pow(2, 10 * (t/d – 1)) + b

> > end

> > end

> >

> > — exponential easing out – decelerating to zero velocity

> > function easeOutExpo(t, b, c, d)

> > if (t==d) then

> > return b+c

> > else

> > return c * (-math.pow(2, -10 * t/d) + 1) + b

> > end

> > end

>

>

>

May I suggest http://dactilde.com/index.php?title=JitGLLua ? :)