While your idea is sound, it only covers he vanilla case where each and all shapes are the same size.
This would not account for several cases
- a shape not centered in the guides
- a shape that uses controls so that the actual geometry is outside (even if uniform) outside the guides
- shapes of various sizes (your approach would need to factor 1/2 the width and or 1/2 height into algorithm)
- irregular shapes - even if all in the guides - would not have desired appearance (no square southeast of a dogleg)
- etc.
if all shapes are same dimensions, then the distribute "button" - it works - would accomplish your algorithm
keep playing with your algorithm...good luck
Don't mean to be rude, but what are you talking about? None of those scenarios throw the algorithm off in the slightest... Two lists of midpoints taken separately from the perspective of the X and Y coordinates do not care about what size the shapes are, or if the shapes are irregular, let alone if they are in 'guides'. Read it again and think about it.
and it is not hard to come up with that algorithm, it just basically makes a 2 dimensional array of the shapes based on their midpoints and then sorts them first by Y coordinate, and then by X coordinate, (and next would be by which layer is in front, but i did not get too detailed), from highest to lowest into columns spaced as desired from the user. It is pretty common-sense and Microsoft should have done this already.
I didn't take the time to write it in completely formal language but it should be clear enough to understand.
Admittedly it is probably irrelevant unless microsoft employees happen to be browsing this forum.