\documentclass[border=5mm]{standalone} \usepackage{luamplib} \usepackage{fontspec} \setmainfont{Helvetica} \begin{document} \mplibtextextlabel{enable} \begin{mplibcode} beginfig(1); path C[], B[]; % arrange each circle so that point 0 is outside the others C1 = fullcircle scaled 120 rotated 90 shifted 40 up; C2 = C1 rotated 120; C3 = C2 rotated 120; B0 = buildcycle(C1, C2, C3); B1 = buildcycle(C1, C2); B2 = buildcycle(C2, C3); B3 = buildcycle(C3, C1); picture P; for x=0 upto 1: for y=0 upto 1: P := image( s := 1/4 + x/2; k := 0 + y/4; fill C1 withcolor s*(1,0,0,k); fill C2 withcolor s*(0,1,0,k); fill C3 withcolor s*(0,0,1,k); fill B3 withcolor s*(1,0,1,k); fill B2 withcolor s*(0,1,1,k); fill B1 withcolor s*(1,1,0,k); fill B0 withcolor s*(1,1,1,k); undraw C1; undraw C2; undraw C3; ) shifted -(200x, 200y); draw P; label.bot(("shade: " & decimal s & ", k: " & decimal k) infont "phvr8r", point 1/2 of bbox P); endfor endfor endfig; \end{mplibcode} \end{document}