u = 2cm; color c[]; c1 := (0,0.6,0.8); c2 := (0.8,0.6,0); vardef cercles (expr x,y,c) = for i:=1 upto 4: draw fullcircle scaled ((2+i)*u) shifted (x,y) withpen pencircle scaled .15u withcolor c; endfor; enddef; path ecran; ecran := (0,0) .. (4u,-0.9u) .. (8u,0) .. (8.9u,4u) .. (8u,8u) .. (4u,8.9u) .. (0,8u) .. (-0.9u,4u) .. cycle; picture sauvegarde; beginfig(1); cercles(0,0,c2); cercles(0,8u,c2); cercles(8u,8u,c2); cercles(8u,0,c2); clip currentpicture to ecran; sauvegarde := currentpicture; currentpicture := nullpicture; cercles(0,0,c1); cercles(0,8u,c1); cercles(8u,8u,c1); cercles(8u,0,c1); draw sauvegarde; endfig; beginfig(2); cercles(0,0,c2); cercles(0,8u,c2); cercles(8u,8u,c2); cercles(8u,0,c2); clip currentpicture to ecran; endfig; end