[Tex/LaTex] How to draw lune in a sphere and shade it with TiKz

tikz-pgf

To make the question short I want to draw the following graph:

Lune

This graph was copied from Hyperbolic Geometry -Triangles and Gauss Bonnet
My problem is how to paint the shading. Circles on a sphere are easy to draw, but the shading seems to be more difficult.

It is apparent that, as an angle is the intersection of two half planes, a lune is the intersection of two half spheres. So by proper shading of half spheres and overlaying we might be able to to get such a figure. If that is the case the question now is how to shade half a sphere? Then this send me to this draw a hemisphere post, which BTW has not been answer yet, but I believe it is a good start.

Thanks.

Best Answer

Here's an effort in fake-3D in Metapost which might encourage someone to show something similar in TikZ. There's no buildcycle for TikZ, but you can get the same effects with the intersections library, I believe.

enter image description here

prologues := 3;
outputtemplate := "%j%c.eps";

beginfig(1);

r = 3cm;

color g[]; % some Shades of Grey...
g1 = .8 white;
g2 = .7 white;
g3 = .6 white;
g4 = .5 white;
g5 = .4 white;
g6 = .3 white;

path c[];
c1 = fullcircle scaled 2r;
c2 = c1 yscaled 1/2 rotated -10;
c3 = c1 yscaled 1/2 rotated +96;
c4 = c1 yscaled 1/4 rotated +42;

fill c1 withcolor g1;

fill buildcycle( subpath (0,4) of c3, subpath (4,0) of c4, subpath (4,8) of c3 ) withcolor g2;
fill buildcycle( subpath (2,6) of c4, subpath (4,0) of c3                      ) withcolor g2;
fill buildcycle( subpath (4,8) of c4, subpath (0,4) of c1, c3                  ) withcolor g4;
fill buildcycle( subpath (6,3) of c4, subpath (3,7) of c1, subpath (2,5) of c3 ) withcolor g5;

draw subpath (0,4) of c2 withcolor g3; 
draw subpath (0,4) of c3 withcolor g3; 
draw subpath (0,4) of c4 withcolor g3; 

draw subpath (0,2) of c2 cutbefore subpath (4,8) of c4 cutafter c3 withcolor g6; 
draw subpath (0,2) of c4 cutafter c3                   withcolor g6; 
draw subpath (2,4) of c3 cutbefore subpath (4,8) of c4 withcolor g6; 

draw subpath (4,8) of c2;
draw subpath (4,8) of c3;
draw subpath (4,8) of c4;

label(btex $\alpha$ etex, (subpath (4,8) of c3 intersectionpoint subpath (4,8) of c4) shifted (-4,-12) );
label(btex $\beta$  etex, (subpath (4,8) of c4 intersectionpoint subpath (4,8) of c2) shifted (+16,+4) );
label(btex $\gamma$ etex, (subpath (4,8) of c2 intersectionpoint subpath (4,8) of c3) shifted (-4,+6) );

draw c1 withcolor g6;
undraw c1 scaled 1.4;

endfig;
end.
Related Question