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.1,0),(.5,1.1),(0,1.1)}; int[] edge_flag={0,0,0,1}; draw(chemin); gouraudshade(chemin,p,points,edge_flag); dot(chemin); draw(points[0]--points[1]--points[2]--points[3]--cycle,dashed);