Calculating x and y positions with distance and angle info

Some additional thoughts.

If all your angles are equally spaced, you can actually get away with a single (cosine, sine) pair:

local cosa, sina = 1, 0 -- can be R, 0 for a fixed radius; otherwise, you'll scale these -- intermediate results -- Angle increment of 360 / N local cosda, sinda = math.cos(2 \* math.pi / N), math.sin(2 \* math.pi / N) for i = 1, N do -- do something with (cosa, sina) -- Rotate by angle delta. cosa, sina = cosa \* cosda - sina \* sinda, sina \* cosda + cosa \* sinda end

Another possibility is that your angles come from something like a math.atan2(). In that case, you can probably take a more direct approach, assuming nothing else needs the result.

The angles could all be randomly generated, of course. Then there really won’t be any structure to exploit. That said, you might be able to stagger your transitions by only launching a few (say every second or third one) per frame, some more on the next, etc. Naturally, you would only bother with the computations for those you actually fired. If it matters, you can interpolate the stragglers’ positions and adjust their transition times to keep everything approximately in line.