On Feb 17, 11:56 pm, Dave Angel <da...@ieee.org> wrote: > Andrej Mitrovic wrote: > > On Feb 17, 8:24 pm, John Posner <jjpos...@optimum.net> wrote: > > >> On 2/17/2010 1:10 PM, Andrej Mitrovic wrote: > > >> <snip> > > > However the values list might have an uneven number of items. I would > > like to make it as evenly distributed as possible, e.g.: > > > values =-2, -1, 0] > > frames =obj1, obj2, obj3, obj4, obj5, obj6, obj7, obj8] > > > frames[0].func(values[0]) # func.(values[-2]) > > frames[1].func(values[0]) # func.(values[-2]) > > frames[2].func(values[1]) # func.(values[-2]) > > frames[3].func(values[1]) # func.(values[-1]) > > frames[4].func(values[1]) # func.(values[-1]) > > frames[5].func(values[2]) # func.(values[-1]) > > frames[6].func(values[2]) # func.(values[0]) > > frames[7].func(values[2]) # func.(values[0]) > > > I'll be even more specific. I have a Minimum and Maximum value that > > the user enters. The frame.func() function is a "translate" function, > > it basically moves a frame in the application in one direction or > > another depending on the argument value. So frame[0].func(2) would > > move the frame[0] 2 pixels to the right. So what I want is the > > function to create a smooth transition of all the frames from the > > Minimum to the Maximum value. If minimum was 0, and maximum was 10, > > I'd want the first frame moved 0 pixels (it stays in place), the last > > frame to move 10 pixels, and the frames between are gradually moved > > from 1 pixels to 9 pixels relative from their positions. > > > Perhaps I'm just overcomplicating. I'll have a look at some drawing > > apps and see how they've implemented drawing straight lines under an > > angle, I guess that could be called a gradual change of values. > > > Thanks for all the suggestions everyone, I'll have a look at the rest > > shortly. > > I think you're overcomplicating. If you have 27 frames, and you want > frame 0 to move 0 pixels, and frame 27 to move 10 pixels, then you want > to move frame[i] by i*10/27. And since you do the multiply first, the > fact that Python 2.x division gives you integers isn't a problem. > > There are fancier methods for drawing lines (bresenham for example), but > the main purpose of them is to to avoid multiply and divide, as well as > floats. But in Python, an integer multiply is just as fast as an add or > subtract, so there's no point. > > DaveA
Doh! Such a simple solution, just what I was looking for. Thanks! -- http://mail.python.org/mailman/listinfo/python-list