HOWTO: cylindrical map projection?
June 26, 2010 1:56 PM   Subscribe

I want a flat, rectangular image that is a cylindrical map projection of the edges of a icosidodecahedron. How do I make one?

It's for a board game. Originally I played the board game on a Hoberman Sphere hung from a chandelier, but it's not very portable that way. I want to be able to play it on a flat board, like Risk.

A Hoberman Sphere is that jointed expanding toy you see in science museum shops. It's made of six great circles, each one in a different color. The final image I'm looking for is a flat white rectangle with six colored lines on it corresponding to those six great circles.

I have a 3D model of an icosidodecahedron in Maya, and thought maybe I could paint the edges of the model somehow and then export the texture to Photoshop, resulting in a cylindrical projection. But I haven't figured out how to do it that way.
posted by matt_arnold to Science & Nature (10 answers total) 3 users marked this as a favorite
You could do it the old-fashioned way by putting a bright light inside the Hoberman sphere and tracing the shadows onto paper.
posted by sanko at 2:30 PM on June 26, 2010

one way could be: prepare an animation in maya where your solid rotates 360° around the vertical axis, export frames as separate images and keep, for each frame, only the central pixel column. Then batch-stitch them all together vertically in photoshop. The number of frames will equal the image width, while the height is going to be the height of your viewport.
posted by _dario at 2:31 PM on June 26, 2010

I would do this mathematically with a scripting language. First find the equation for the projection you want to use -- this will be two equations that map (lat, long) to (x, y). For example for the very basic cylindrical projection, x = longitude and y = tan(latitude). You might want to use something a little more sophisticated, and all the links at the bottom of that page should help you decide. Then draw your six great circles in terms of (lat,long) and apply the transformation, outputting (x,y). You can use whatever plotting program you have available to then plot those (x,y) points.
posted by Rhomboid at 3:56 PM on June 26, 2010

I don't know Maya at all, but playing with Blender 2.49 I made an icosidodecahedron, set the view to front and went to uv unwrap- cylinder from view. The shapes were kind of distorted, but I suppose they would have to be. Maya probably ought to have something analogous that you could use. Figuring out precisely what would be faster than learning to navigate the hotkey hell that is Blender.
posted by "Elbows" O'Donoghue at 4:00 PM on June 26, 2010

Oh and the formula for drawing the great circles probably looks something like lat=z*sin(a), long=long_0+z*cos(a), where z is a parameter that you step from 0 to 360, and (a, long_0) are constants that adjust the angle at the equator and offset.
posted by Rhomboid at 4:01 PM on June 26, 2010

Best answer: Here's an SVG image of a Lambert projection, and here's the C++ program it was built with.

I'm off to bed right now, but I can play with it more tomorrow if this is close to what you want. (Change the colors, maybe, or rotate everything so that none of the great circles are on the equator, which would probably look nicer...)
posted by equalpants at 4:39 PM on June 26, 2010 [3 favorites]

Great idea, a territory-based game on the surface of a sphere could be really interesting.

Since it's for the purpose of a game board, maybe you don't need a true projection anyway, and could just draw it by hand. I think if you take equalpants's image, put vertices in the centers of the 5-sided shapes, added one more vertex each at the top and bottom for a total of twelve, and connected everything with lines you'd be good to go.
posted by jeffj at 5:13 PM on June 26, 2010

Here's a Mercator projection. (Looks a little better, I think.)
posted by equalpants at 3:33 AM on June 27, 2010

Response by poster: equalpants, thanks so much. Your images are awesome! I can take it from here in Adobe Illustrator.

Thanks also to everyone for "teaching me how to fish", so to speak.
posted by matt_arnold at 9:25 AM on June 27, 2010

Oh, and for the record, I misread icosidodecahedron as icosahedron, so please disregard my above comment.
posted by jeffj at 12:32 PM on June 29, 2010

« Older What should I write in my parking mitigation...   |   Walkable Atlanta Newer »
This thread is closed to new comments.