\documentclass[border=5mm]{standalone}
\usepackage{luamplib}
\begin{document}
\mplibtextextlabel{enable}
\begin{mplibcode}
def withalpha expr a =
withprescript "tr_alternative=2"
withprescript "tr_transparency=" & decimal a
enddef;
beginfig(1);
numeric u; u = 24; color shade[]; string name[];
shade0 = 1/256(166, 57, 65); name0 = "R"; % rouge
shade1 = 1/256(219, 170, 72); name1 = "J"; % jaune
shade2 = 1/256(36, 54, 84); name2 = "B"; % bleu
path edge[], arc[], ring[];
for r=1 upto 8:
edge[r] = fullcircle rotated 90 scaled (2r * u)
shifted (0, 7u / sqrt 3) rotated 120;
endfor
for i=2 upto 8:
edge[i] := edge[i] cutbefore edge8 rotated 120
cutafter edge8 rotated -120;
endfor
arc0 = point 0 of edge1 for i=2 upto 7: .. point 0 of edge[i] endfor;
arc1 = point 0 of edge1 for i=2 upto 7: .. point infinity of edge[i] endfor;
for i=1 upto 7:
ring[i] = edge[i] -- subpath (i-1, i) of arc1 --
reverse edge[i+1] -- subpath (i, i-1) of arc0 -- cycle;
endfor
for r=0, 1, 2: for i=1 upto 6: % fills first
fill ring[i] rotated 120r withcolor (i/6)[white, shade[r]] withalpha 0.9;
for k=0, 1:
label("$\textsf{" & name[r] & "}" if i<6: & "_" & decimal i fi & "$",
point i-1/2 of arc[k] shifted (-8,-2) rotated 120r);
endfor
endfor endfor
for r=0, 1, 2: % now lines on top
for i=1 upto 7:
draw edge[i] rotated 120r withpen pencircle scaled 1 withcolor 7/8;
endfor
draw arc0 rotated 120r; draw arc1 rotated 120r;
endfor
endfig;
\end{mplibcode}
\end{document}