# [GIF] In Balance (Mercator projection of concentric circles on the sphere)

Posted 11 months ago
1524 Views
|
|
3 Total Likes
|
 In BalanceA follow-up to Map, this is also the Mercator projection of circles on a rotating sphere. In this case, I'm taking concentric circles about the point $(0,1,0)$, then rotating around the $x$-axis.The key is to use ContourPlot[]: the concentric circles correspond to points on the sphere with a given dot product with $(0,1,0)$, but what I'm actually doing is applying ContourPlot[] to the composition of the inverse Mercator projection (from the plane to the sphere) and the dot product with $(0,1,0)$. To define the inverse Mercator map, recall that the Mercator projection is defined in terms of longitude and latitude by $(\lambda, \phi) \mapsto (\lambda, \ln(\tan(\pi/4+\phi/2)))$. That means that a point $(x,y)$ (with $-\pi \leq x \leq \pi$) is mapped to by the point on the sphere with latitude $x$ and longitude $2( \arctan e^y-\pi/4)$, which to say, the point $(\operatorname{sech} y \cos x, \operatorname{sech} y \sin x,\tanh y)$ in Cartesian coordinates: InverseMercator[{x_, y_}] := {Sech[y] Cos[x], Sech[y] Sin[x], Tanh[y]}; To make the animation, then, it's just a matter of choosing a color scheme (in this case "GrayTones") and then evaluating ContourPlot[]: Manipulate[ ContourPlot[ InverseMercator[{x, y}].RotationTransform[θ, {1, 0, 0}][{0, 1, 0}], {x, -π, π}, {y, -π, π}, Frame -> False, ImageSize -> 540, ContourStyle -> None, Contours -> Range[-.95, .95, .1], PlotRangePadding -> -0.01, ColorFunction -> "GrayTones"], {θ, 0, 2 π}]