"sphere in a bag" plane to sphere projection

I'm looking for the mathematical transformation to transform points on a 2D plane [0,1]x[0,1] onto the unitsphere.

The most common projection would latitude-longitude mapping by interpreting u and v as the angles for the spherical coordinates (map u to [0,2PI] and v to [-PI/2, PI/2])

This gives strong distortions on the poles of the sphere. One can think of this transform as like wrapping the sphere into a bonbon-paper twirling the paper at the both ends. This will give distortions at those two ends.

The transformation I'm looking for can be rater thoght of putting the sphere into the middle of a paper and putting all sides around the sphere and twirl them together on a single spot - so you get a little paper-bag with your sphere in it. This yelds minimal distortion on the bottom of the "bag" and maximum distoriton on the top - and if seen from below, the distortion is equal in all directions.

Can someone tell me how to calculate this kind of mapping?


For the mapping you describe, you can use polar coordinates: (x,y)-->(r,alpha), where r is in [0,1], representing the ratio between the distance from the center of the rectangle O(0.5,0.5) to the current point P(x,y), and the maximum length this segment could have at the current value of alpha. Then map r to [-PI/2, PI/2] and alpha to [0,2PI].

I think you are looking for the Exponential Map. See also Interactive Decal Compositing with Discrete Exponential Maps.

The right answer depends on which property of the original needs preserving because every distinct map projection distorts in a distinct way. Some preserve areas, some preserve angles, some preserve distances.

Assuming the case is about shapes, then I'd suggest a Dymaxion map but note that its planar representation is not fully rectangular.

For other options see the list at Colorado University.

if you make a sketch of the problem using the x-y axes from 0 to 1 (ie first quadrant), then with the same origin draw the projected first octant with its axes from 0 to pi/2. Mark in point (1,1) from the origin then the magnitude of this point from the origin is root(2). You can now see that your point (1,1) cannot be mapped onto the sphere as it would appear outside it.

Need Your Help

Is an unquoted charset valid?

html character-encoding meta-tags quotes

I was checking out the new JSBin and noticed that the default HTML included: <meta charset=utf-8 />. Notice how the encoding utf-8 is unquoted. I wanted to know if this is just a mistake or v...

jVectorMap: How to add marker dynamically by coordinates?

jquery jvectormap

I have a map converted from an SVG file, and now I want to add marker on that map right at the cursor position. But the marker is placed at wrong position, and they don not follow any rules, so I c...