Baskets of polygons
 Baskets
 Fix two integers m ≥ 3 and n ≥ 4 and consider, in the horizontal plane
in three-space, a regular m-gon surrounded by m regular n-gons
with the same side length, glued to it edge to edge.
 Depending on m and n,  the outer n-gons can
  - overlap with their neighbours (think of 
m and n both large)  - tile perfectly, that is, intersect with each of their neighbours along an edge
  - leave out some space, so that two neighbouring 
n-gons
only share a vertex  
 The second case happens only for finitely many pairs (m, n) and is well studied.
 The third case happens for every (m, 4) and for finitely many other pairs.
 In that third case, if we rotate each n-gon by a same angle around
its common edge with the central m-gon, as the rotation angle
increases, the gap between neighbouring n-gons decreases,
until for some special value alpha (depending on m and n),
it vanishes and each n-gon shares a full edge with each of its neighbours.
 We obtain a "basket" ; let's call that an (m, n)-basket.
 Link with the soccer ball polyhedron
 The soccer ball polyhedron is the polyhedron made
of 12 regular pentagons and 20 regular hexagons,
all with the same side length, glued edge to edge,
each pentagon adjacent to 5 hexagons, each hexagon
adjacent to 3 pentagons and 3 hexagons.
 One of the pentagons together with its five adjacent hexagons
form a (5, 6)-basket.
 Basket angle
 The question is: for each m and n, what is the angle alpha to use?
 Modelisation and solution
 To determine the angle alpha, we restrict our attention
to one m-gon and one adjacent n-gon.
 For convenience we take half the side length as our length unit.
 We set up some notation. Call
  M the m-gon, E its centre,  N the n-gon,  T, U, V, W four consecutive vertices of N,
such that [UV] is the common edge with M  A the midpoint of [UV]  C the midpoint of [TW]  P the plane that contains M  L the line through E perpendicular to P  p the orthogonal projection map from the whole space to P (parallel to L)  B = p(C) the orthogonal projection of C to P  tau the angle of a full turn, that is, tau = 2*pi  r the rotation map by tau/m (an m-th of a turn) around L
sending U to V and T to W;  - for each integer 
k, r^k the rotation by (k/m)*tau around L,
(the k-th composition power of r),  
 Notice the rotates r^k(T) for k from 0 to m - 1
(including T and W) form a regular m-gon parallel to M.
 Call R that m-gon, and F its centre. Notice that p(F) = E.
 Since the planes containing M and R are parallel,
p induces an isometry between them, so FC = EB
(both as vectors and as lengths).
 Notice E, A, B are aligned, so, as lengths, EB = EA + AB
 Right-angled triangles, and a trapezoid
 We notice some right-angled triangles:
  (A, B, C) has a right angle at B and an angle alpha at A, so
 cos(alpha) = AB / AC
 (if n = 4 that triangle is degenerate but the formula still holds)
  (E, A, V) has a right angle at A and an angle pi/m at E, so
 tan(pi/m) = AV / EA
cot(pi/m) = EA / AV
 and notice that by our choice of length unit, AV = 1
  (F, C, W) has a right angle at C and an angle pi/m at F, so
 tan(pi/m) = CW / FC
cot(pi/m) = FC / CW
  
 Furthermore, calling H the orthogonal projection of U to the line (TW),
  (T, H, U) has a right angle at H and an angle tau/n at T, so
 TH = 2 * cos(tau/n)
UH = 2 * sin(tau/n)
  
 In the trapezoid (T, U, V, W), C is the midpoint of [WT],
the points C, H, T are aligned, and UACH is a rectangle, so
     CW = CT
    CT = CH + HT
    AC = UH = 2 * sin(tau/n)
    CH = AU = 1
 Combining our equations
 Starting from the equation
 FC = cot(pi/m) * CW
 and substituting
 FC = EB = EA + AB = cot(pi/m) + 2 * sin(tau/n) * cos(alpha)
 and
 CW = CT = CH + HT = AU + TH = 1 + 2 * cos(tau/n)
 we get
 cot(pi/m) + 2 * sin(tau/n) * cos(alpha) = cot(pi/m) * (1 + 2 * cos(tau/n))
 which simplifies to
 2 * sin(tau/n) * cos(alpha) = cot(pi/m) * 2 * cos(tau/n)
 and gives
 cos(alpha) = cot(pi/m) * cot(tau/n)
 How can Sage be useful here?
 Define a function and try it out:
 def basket_angle(m, n):
    return arccos(cot(pi/m) * cot(2*pi/n))
 Pentagon surrounded by hexagons:
 sage: a = basket_angle(5, 6)
sage: a
arccos(1/15*sqrt(3)*sqrt(10*sqrt(5) + 25))
sage: a.n()
0.652358139784368
sage: (a/pi).n()
0.207652045225832
sage: (a * 180 / pi).n()
37.3773681406497
 Triangle surrounded by octagons:
 sage: a = basket_angle(3, 8)
sage: a.n()
0.955316618124509
 In degrees:
 sage: (a * 180 / pi).n()
54.7356103172453
 Going further
 It would be a fun project to draw pictures and animations
to illustrate the problem using Sage. For example, one could
produce
  a 3d animated scene to illustrate folding the hexagons
from an initial position spread out in the plane of the
pentagon to a final folded up position
  a 3d animated scene drawing each of the steps of the
reasoning above, highlighting the relevant right angled
triangles one after the other.