summaryrefslogtreecommitdiff
path: root/info/drawing-with-metapost/src/paths-schlafli-polygons.mp
blob: e0939c1f192468cf6bd9a165fc53448261c83d69 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
\documentclass[border=5mm]{standalone}
\usepackage{luamplib}
\begin{document}
\mplibtextextlabel{enable}
\begin{mplibcode}
input colorbrewer-rgb

vardef gcd(expr a, b) = 
  if b = 0: a else: gcd(b, a mod b) fi 
enddef;

beginfig(1);
  for n=2 upto 24: 
    for s=1 upto floor n/2:
      pair p; p = (12n - 24s, -24n);
      path gon; gon = for t=0 upto n/gcd(s,n) - 1:
        10 up rotated (360/n * s * t) -- 
      endfor cycle;
      if (n mod s = 0): 
        fill gon shifted p withcolor PuBuGn[9][1+floor (n/s/6)];
        label("$" & decimal (n/s) & "$", p);
      fi
      draw gon shifted p withpen pencircle scaled 1/8;
    endfor
  endfor
endfig;
\end{mplibcode}
\end{document}