// Le même exemple que précédemment : seule la translation qui permet // de construire c2 change ! On constate que, cette fois, buildcycle(c1,c2) // permet de construire la réunion des ensembles. size(7.8cm,0); // Je définis un chemin c1 et un second c2 déduit par translation. path c1=(0,0)..(1.5,0)..(2,1.5)..(-1,1)..cycle; path c2=shift(-.25,-.75)*c1; // c3 est le chemin cyclique résultant de la fonction buildcycle // appliquée à c1 et c2 dans cet ordre. path c3=buildcycle(c1,c2); // On colorie la zone définie par c3 et on dessine les ensembles. fill(c3,palegreen); draw(c1,2bp+blue); draw(c2,2bp+red); draw(c3,.9bp+yellow); // On étiquette les noeuds des trois chemins pour // bien comprendre comment est construit c3 à partir de c1 et c2. defaultpen(fontsize(14pt)); real w=linewidth(); for(int i=0; i