pygame is
Python
Simple DirectMedia Layer
 
 
pygame.org is
Site Swing
Wiki

LinearInterpolator

      
Search:  
 
 
import Numeric
 
def linear_interpolate(start, stop, seconds, fps=30):
    """
    Given a start and stop vector (2 or 3 element tuple), and a time period 
    at a default 30 fps, yield a sequence of vectors which interpolate 
    between stop and start.
    """
    start = Numeric.array(start, Numeric.Float)
    stop = Numeric.array(stop, Numeric.Float)
    diff = stop - start
    inc = 1.0 / fps
    step = diff * inc
    current = Numeric.array(start)
    stop_second = inc * 2
    while seconds > stop_second:
        seconds -= inc
        current += step
        yield tuple(current)
    yield tuple(stop)

Comments
After playing around with this a little bit I noticed that there are several things needing improvement. The first is on line 13, which should read:
step = diff * inc / seconds
to properly factor in the desired timeframe. The second is the handling of seconds and stop_second. The latter is actually completely unnecessary and can be replaced with inc.

-- 23 April 2007 Duoas



page migrated to new wiki
spotlight

 
our projects
pygame.org welcomes all python game, art, music, sound, video and multimedia projects. If they use pygame or not.
 
recent releases
Aug 26, 2015


Aug 25, 2015


Aug 21, 2015

Aug 16, 2015


Jul 30, 2015

Jun 24, 2015

Jun 17, 2015

Jun 14, 2015

Jun 8, 2015

... more!
 
for pygame related questions, comments, and suggestions, please see help (lists, irc)