# Drawing partition diagrams on spheres

I will be doing a few presentations at an undergraduate research conference later, the topics of which are somewhat tentative at the moment, but one of the things I wanted to go over were some of the introductory bits (say, first 10ish pages) in the paper On Tutte's Chromatic Invariant, and with an advisor I found an excellent idea for a visual aid demonstration on how the trace form on the partition algebra can be seen as a monomial in terms of the join operation by using a spherical, baseball-esque covering.

These are what the partition diagrams I am interested in should look like (the middle one):

Notice that in the middle one, there is "vertex-splitting." For non-planar partitions, different shaded regions may overlap, and we have to choose (arbitrarily) which one will go over which. What I want to do, conceptually, is put two partition diagrams over top each other and glue their boundaries, then blow it up so that it is a sphere: one side of the sphere will show one partition diagram, and the other side will show the other partition diagram. The resulting figure will illustrate the "trace form" $\rm tr(p_\pi p_\sigma^{t})$ of the two partitions $\pi$ and $\sigma$ (this is detailed in the linked paper, though somewhat tersely.)

Ideally, then, the sphere and the shaded regions will look very pretty and I will be able to rotate it at my whim, and I will be able to animate say a dozen and a half of these figures and put them onto a slide.

What sorts of techniques or functions or whatever would Mathematica veterans recommend a newbie look into to accomplish this task?

-

Although you gave a very detailed description, it's still hard to understand, what exactly you tried already and what exactly you are struggling with. Do you mean the whole task? Then someone has to know your field very well or read the paper which is unlikely to happen. Let me give you an idea with a subpart of your task:

What I want to do, conceptually, is put two partition diagrams over top each other and glue their boundaries, then blow it up so that it is a sphere: one side of the sphere will show one partition diagram, and the other side will show the other partition diagram.

Let's say you have accomplished to draw the 2D circular plots and they are created of Polygon's like in this example (which has nothing to do with your figures):

gr = RegionPlot[disk[5], {x, -2, 2}, {y, -2, 2}]//Normal


With the help of Normal, the contents of the created Graphics is converted, so that the figure consists graphic directives with explicit coordinates. Let's extract some Polygons so that you see it

Take[Cases[gr,Polygon[__],Infinity],5]
(*
{Polygon[{{0.0526316,-1.31579},{0.105263,-1.26316},{-4.16334*10^-16,-1.26316}}],
Polygon[{{0.0526316,-0.473684},{0.105263,-0.421053},{-4.16334*10^-16,-0.421053}}],
Polygon[{{1.31579,-0.473684},{1.36842,-0.421053},{1.26316,-0.421053}}],
Polygon[{{-0.631579,-0.421053},{-0.526316,-0.526316},{-0.526316,-0.315789}}],
Polygon[{{-0.789474,-0.473684},{-0.736842,-0.421053},{-0.842105,-0.421053}}]}
*)


To map this onto a sphere, you could simply transform the 2D coordinates into 3D coordinates. Polygon will work as well with Graphics3D. Since this object is centered at the origin, the transformation is pretty simple and follows the equation

$$x^2+y^2+z^2=r^2$$

Choose an appropriate r and calculate z for each coordinate. This transformation itself can be realized with a simple replacement:

polys = Cases[gr, Polygon[__], Infinity] /.
{x_?NumericQ, y_?NumericQ} :> {x, y, Sqrt[2.3 - (x^2 + y^2)]};


where the 2.3 was chosen arbitrarily. This gives you a new set of 3D polygons which can be used to create a final 3D graphic by

Graphics3D[{EdgeForm[None], Red, polys, Blue, Opacity[.5],
Sphere[{0, 0, 0}, Sqrt[2.3] - .01]}]


There are surely other ways to project your graphic onto a sphere but to give a more specific suggestion it is required to know how exactly you created or how exactly you will create you 2D plots.

-