A collection of tweening / easing functions.
Project description
PyTweening
A collection of tweening / easing functions implemented in Python. The tweening functions are passed the “time elapsed” value between 0.0 (start time) and 1.0 (end time) and return a “distance traveled” value between 0.0 (start point) and 1.0 (end point). The returned value could be greater than 1.0 for tweens that go past the end point, such as the elastic tween.
See the graphs in this Excel spreadsheet to see the behavior of the ease in, ease out, and ease in-out tweens: https://github.com/asweigart/pytweening/blob/master/tests/graphs.xlsx
And also here: https://i.imgur.com/KYaNM6b.png
Example Usage
All tweening / easing functions are passed an argument of a float from 0.0 (for the beginning) to 1.0 (for the end) of the tween:
>>> pytweening.linear(0.5) 0.5 >>> pytweening.linear(0.75) 0.75 >>> pytweening.linear(1.0) 1.0 >>> pytweening.easeInQuad(0.5) 0.25 >>> pytweening.easeInQuad(0.75) 0.5625 >>> pytweening.easeInQuad(1.0) 1.0 >>> pytweening.easeInOutSine(0.5) 0.49999999999999994 >>> pytweening.easeInOutSine(0.75) 0.8535533905932737 >>> pytweening.easeInOutSine(1.0) 1.0
The getLine() function also provides a Bresenham line algorithm implementation:
>>> pytweening.getLine(0, 0, 5, 10) [(0, 0), (0, 1), (1, 2), (1, 3), (2, 4), (2, 5), (3, 6), (3, 7), (4, 8), (4, 9), (5, 10)]
The getLinePoint() function finds a point on the provided line (even if it extends before or past the start or end points):
>>> getLinePoint(0, 0, 5, 10, 0.0) (0.0, 0.0) >>> getLinePoint(0, 0, 5, 10, 0.25) (1.25, 2.5) >>> getLinePoint(0, 0, 5, 10, 0.5) (2.5, 5.0) >>> getLinePoint(0, 0, 5, 10, 0.75) (3.75, 7.5) >>> getLinePoint(0, 0, 5, 10, 1.0) (5.0, 10.0)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.