size(7cm,0); path chemin=(0,0){dir(45)}..(1,0)..(1,.5)..(0,1)..cycle; pen[] p={red,green,blue,magenta}; pair[] points={(0,0),(1,0),(1,1),(0,1)}; int[] edge_flag={0,0,0,2}; draw(chemin); gouraudshade(chemin,p,points,edge_flag); dot(chemin); draw(points[0]--points[1]--points[2]--points[3]--cycle,dashed);