\documentclass{standalone} \usepackage{luamplib} \begin{document} \mplibtextextlabel{enable} \begin{mplibcode} numeric u; u = 10; path box; box = unitsquare shifted -(1/2,1/2) scaled 12u; picture P[]; % (4,6,12) numeric dx; dx = u*(1+ cosd(15)/sind(15)); picture unit; unit = image( path s; s = unitsquare shifted -(1/2,1/2) scaled u shifted (dx/2,0); for t=0 upto 2: draw s rotated 120t; for tt=1 upto 3: draw subpath(3,4) of s rotated (120t+30tt); endfor endfor ); P1 = image( draw unit withpen pencircle scaled 4 withcolor .8[red,white]; for x=-5dx step dx until 5dx: for y=-5dx step dx until 5dx: draw unit shifted (x,0) shifted ((y,0) rotated 60); endfor endfor clip currentpicture to box; draw box dashed withdots scaled 1/4; label.bot("$(4, 6, 12)$", point 1/2 of bbox currentpicture); ); numeric dx; dx = u*(cosd(180/8)/sind(180/8)); path octagon; octagon = for t = 0 upto 7: 1/2(dx,u) rotated 45t -- endfor cycle; P2 = image( draw octagon withpen pencircle scaled 4 withcolor .8[red,white]; for x=-5dx step dx until 5dx: for y=-5dx step dx until 5dx: draw octagon shifted (x,y); endfor endfor clip currentpicture to box; draw box dashed withdots scaled 1/4; label.bot("$(4, 8^2)$", point 1/2 of bbox currentpicture); ); numeric dx; dx = u*(cosd(180/12)/sind(180/12)); path unit; unit = for t=0 upto 11: 1/2(dx,u) rotated 30t -- endfor cycle; P3 = image( draw unit withpen pencircle scaled 4 withcolor .8[red,white]; for x=-5dx step dx until 5dx: for y=-5dx step dx until 5dx: draw unit shifted (x,0) shifted ((y,0) rotated 60); endfor endfor clip currentpicture to box; draw box dashed withdots scaled 1/4; label.bot("$(3, 12^2)$", point 1/2 of bbox currentpicture); ); % path box; box = unitsquare shifted -(1/2,1/2) scaled 12u; % clip currentpicture to box; draw box dashed evenly; % endfig; % beginfig(4); % % (6^3) % save dx; dx = 3u; % picture unit; unit = image( % for t=0 upto 2: % draw origin -- (u,0) rotated 120t; % endfor % ); % draw unit withpen pencircle scaled 4 withcolor .8[red,white]; % for x=-5dx step dx until 5dx: % for y=-5dx step dx/3 until 5dx: % draw unit shifted (x,0) shifted (y,0) shifted ((y,0) rotated 60); % endfor % endfor % path box; box = unitsquare shifted -(1/2,1/2) scaled 12u; % clip currentpicture to box; draw box dashed evenly; % endfig; % (3,4,6,4) numeric dx; dx = u*(1+cosd(30)/sind(30)); picture unit; unit = image( path s; s = unitsquare shifted -(1/2,1/2) scaled u shifted (dx/2,0); for t=0 upto 2: draw s rotated 120t; endfor ); P4 = image( draw unit withpen pencircle scaled 4 withcolor .8[red,white]; for x=-5dx step dx until 5dx: for y=-5dx step dx until 5dx: draw unit shifted (x,0) shifted ((y,0) rotated 60); endfor endfor clip currentpicture to box; draw box dashed withdots scaled 1/4; label.bot("$(3, 4, 6, 4)$", point 1/2 of bbox currentpicture); ); % beginfig(6); % % (3,6,3,6) % save dx; dx = 2u; % path unit; unit = for t=0 upto 5: (u,0) rotated 60t -- endfor cycle; % draw unit withpen pencircle scaled 4 withcolor .8[red,white]; % for x=-5dx step dx until 5dx: % for y=-5dx step dx until 5dx: % draw unit shifted (x,0) shifted ((y,0) rotated 60); % endfor % endfor % path box; box = unitsquare shifted -(1/2,1/2) scaled 12u; % clip currentpicture to box; draw box dashed evenly; % endfig; % beginfig(7); % % (4^4) % save dx; dx = 4u; % path unit; unit = unitsquare shifted -(1/2,1/2) scaled 2u; % draw unit withpen pencircle scaled 4 withcolor .8[red,white]; % for x=-5dx step dx until 5dx: % for y=-5dx step dx until 5dx: % draw unit shifted (x,0) shifted (y/2,y/2); % endfor % endfor % path box; box = unitsquare shifted -(1/2,1/2) scaled 12u; % clip currentpicture to box; draw box dashed evenly; % endfig; % beginfig(8); % % (3^4,6) % save dx; dx = 2u; % picture unit; unit = image( % for t=0 upto 5: draw ((2u,0) -- (u,0) % -- (u,0) rotated 60 % -- (u,0) rotated 60 shifted (u,0) % ) rotated 60t; endfor % ); % draw unit withpen pencircle scaled 4 withcolor .8[red,white]; % for x=-5dx step dx until 5dx: % for y=-5dx step dx until 5dx: % draw unit shifted (x,0) shifted ((x/2,0) rotated -60) % shifted ((y,0) rotated 60) shifted (y/2,0); % endfor % endfor % path box; box = unitsquare shifted -(1/2,1/2) scaled 12u; % clip currentpicture to box; draw box dashed evenly; % endfig; % beginfig(9); % % (3^2,4,3,4) % save dx; dx = u; % picture unit; unit = image( % for t=0 upto 3: draw ( (u/2,-u/2) -- (u/2+u*sqrt(3)/2,0) -- (u/2,u/2) -- cycle) rotated 90t; endfor % ); % draw unit withpen pencircle scaled 4 withcolor .8[red,white]; % for x=-5dx step dx until 5dx: % for y=-5dx step dx until 5dx: % draw unit shifted (x,0) shifted ((x,0) rotated 30) % shifted (0,y) shifted ((0,y) rotated 30); % endfor % endfor % path box; box = unitsquare shifted -(1/2,1/2) scaled 12u; % clip currentpicture to box; draw box dashed evenly; % endfig; beginfig(1); draw P1; draw P2 shifted (12.5u, 0); draw P3 shifted (0, -14.4u); draw P4 shifted (12.5u, -14.4u); endfig; \end{mplibcode} \end{document}