\documentclass[border=5mm]{standalone} \usepackage{luamplib} \begin{document} \mplibtextextlabel{enable} \begin{mplibcode} input colorbrewer-rgb path diamond; picture shaded; diamond = (left -- 3 down -- right -- 3 up -- cycle) scaled 13; shaded = image(for i=0 upto 256: draw (left--right) scaled 15 shifted (0, 78/256 i - 39) withpen pencircle scaled 0.32 withcolor (i/256)[white, Greens 8 8]; endfor); clip shaded to diamond; pair u, v; u = point 2 of diamond - point 0 of diamond; v = point 3 of diamond - point 0 of diamond; beginfig(1); for i=0 upto 8: for j=0 upto min(8-i, 4): draw shaded shifted (i * u + j * v); endfor endfor clip currentpicture to -1/2u -- 9u -- 5u + 4v -- 4v - 1/2u -- cycle; draw currentpicture rotated 180; endfig; \end{mplibcode} \end{document}