Here's an odd intellectual puzzle. Something I was daydreaming about on a train - but the maths are somewhat beyond me. How would someone go about un-winding a spiral to produce a long flat image? Like a rope on a spool, I'd want to uncoil the rope so that it lay long and flat. The function would have to take in the image data (imageData) and the imageHeight (the height of the output strip - and hence also the thickness of the 'rope' on the spool). Assumptions that could be made are that the input image is square, containing a circle whose top and bottom touch the top and bottom of the square - and left and right similarly. The hub of circle would be in the absolute centre of the image.
(char*) unwindImage (char* imageData, int imageHeight)
Has anyone else puzzled over this? And, if so, what solution did your come up with?