prologues:=2; def sierpinskiN (expr a, b, n) = if n = 0: draw a--(b rotatedabout(a,60))--b--cycle; else: sierpinskiN(a, 0.5[a,b], n-1); sierpinskiN(0.5[a,b], b, n-1); sierpinskiN(0.5[a,b rotatedabout(a,60)],0.5[a rotatedabout(b,-60),b], n-1); fi; enddef; beginfig(1); z0 = origin; z1 = z0 shifted (0,-500); sierpinskiN (z0, z1, 8); endfig; end