GeneticsOfPolygons.org
Summary of dynamics of the
regular decagon: N = 10
For all 2k-gons with k odd, the dynamics can be derived from the corresponding k-gon. We will
show how the dynamics of N = 10 can be derived from the dynamics of N = 5. This will be a
'template' for all such 2k-gons, but every case is slightly different - especially when k is
composite as in N = 18.
For all regular N-gons with N even, we will refer to the generating N-gon as Dad instead of
Mom. This is consistent with our naming convention for N odd. Our convention for even regular
polygons is to use a height of 1 for Dad instead of radius 1. This is a natural choice for reasons
which will become clear below. We will also rotate the initial vertex to obtain a Dad which
matches the N/2 Dad.
To generate the First Family for N = 10
Step1: In NPGeneric.nb set npoint = 5 and it will generate the FirstFamily as a table of 4
matrices, one for each family member. We will import this family into N = 10, but first generate
the symmetric family on the right and Join it with the original. Call the result FF
FF = Join[FirstFamily, ReflectionTransform[{1, 0}] /@ FirstFamily];
Save["N5FirstFamily",FF]; (* the new FF will have 8 matrices - Mom will show up twice*)
Step 2: Exit the notebook and open 2kGeneric.nb and Get["N5FirstFamily"];
Show[Graphics[poly/@FF,AspectRatio->Automatic]](*Mathematica assigns the same name*)
This is our template for the FirstFamily for N = 10, but it is necessary to scale these and put
DadRight (or DadLeft) at the origin.
Step3: The scale between N= 5 and N = 10 is the radius of the new Mom. This radius is known
because Dad and Mom share the same side: rDad = RadiusFromHeight[1,16];
s0 = SideFromRadius[rDad,16]; rMom = RadiusFromSide[s0,5] ≈
0.552786404500042060718165266254
Step 4: Center of Mom = cMom = rMom*GenStar = rMom*{-(Cos[Pi/5]+1)/Sin[Pi/5],-1}=
{-1.70130161670407986436308099413,-0.55278640450004206071816526625}
Step 5:FirstFamily = TranslationTransform[cMom] /@(FF*rMom);
Graphics[poly/@FirstFamily, Axes->True]
Note that Mom's vertex 1 lies on the x axis. Of course the scales from N = 5 are preserved and
we can use them in place of the scales for Dad. Note that Dad's star[3] matches Mom's star[1] so
his scale[3] is GenScale[5]. It is a general fact for 2k polygons with k odd, that the penultimate
scale for Dad will match GenScale[k]. (Dad's scale[4] is GenScale[10] which we already know.)
Below we overlay the First Family on a web plot and show GenStar and cMom.
Using Mom and the matching MomUp ,we can find three non-periodic points that will generate
the three invariant regions for Dad. The point p1 is the 'canonical' non periodic point back in N =
5. p1= {Mom[[5]][[1]],Mom[[4]][[2]]} ≈ {-2.22703272882321347038875007897,1}
In N = 5 this is the only point needed since its orbit is dense, but N = 10 has three invariant
regions so we need the two symmetric points p2 ≈{-1.013110656468493095259476, -0.5} and
p3 ≈ {-1.1135163644116067351943, 0.19098300562505257587};
OrbitP1 = V[p1, 50000]; OrbitP2= V[p2,50000]; OrbitP3 = V[p3,50000]
Graphics[{AbsolutePointSize[1.0], Black, Point[OrbitP1], Blue, Point[OrbitP2], Magenta,
Point[OrbitP3]}]
Since the points p1,p2 and p3 were defined relative to Mom and MomUp, they are already scaled
and translated to match N = 10, but it is equally easy to take any point from N = 5 and find the
corresponding point in N = 10, or conversely - just use the same scaling and translation we used
for the First Family.
Scales
scale[1]
scale[2]
scale[3]
scale[5]
N=5
N = 10
1.0
1.0
0.23606797749978969641 0.44721359549995793928
0.23606797749978969641
0.10557280900008412144
So GenScale[5] ≈ .0.236067977499 and GenScale[10] ≈ 0.105572809000084
We will be able to use the N = 5 scales for most calculations. For example below is Dad with a
sequence of buds which are identical to the canonical Dad[1] , Dad[2] and Dad[3]. Their radii are
rDad*GenScale[5] , rDad*GenScale[5]2 and rDad*GenScale[5]3. Note that each bud is step 2
relative to the parent - but these are known as step-1 buds back in N= 5 because they are step-1
relative to the corresponding Mom.
Projections
N = 10 has the same number of non-redundant projections as N = 5 but the extras are interesting
so we will do all 4 as shown below:
GraphicsGrid[{{Graphics[poly[Wc[[1]]]],Graphics[poly[Wc[[2]]]],Graphics[poly[Wc[[3]]]]
,Graphics[poly[Wc[[4]]]],Graphics[poly[Wc[[5]]]]}},Frame->All]
Example 1: Ind = IND[p1,50000]; (* Outer ring non-periodic point*)
k = 250; (* the first 250 iterations*)
GraphicsGrid[{{Graphics[{poly[Mom],Blue,Point[PIM[q1,k,1]]}],
Graphics[{poly[Mom],Blue,Line[PIM[q1,k,2]]}],
Graphics[{poly[Mom],Blue,Line[PIM[q1,k,3]]}],
Graphics[{poly[Mom],Blue,Line[PIM[q1,k,4]]}]}},Frame->All]
k = 5000; Note that the outer ring is decomposing because P1 is every other point in the orbit.
The P3 projection is virtually identical to the N = 5 P2 projection
Example 2: Ind = IND[p2,50000]; (* Inner ring non-periodic point*)
k = 250;
k = 20000;
Below are the first 40 points in the P2 projection of p2 compared with the same points for the P3
projection. Dad is shown in each for scale.
© Copyright 2026 Paperzz