import base_pi; size(8cm,0); path cle=yscale(3)*((0,0){N}..(1,0){N}..cycle); draw(cle); pair a=(0.2,.3), b=(.75,-.1); dot("$A$",a,S); dot("$B$",b,S); draw(a--b); real[] itd=intersections(cle,a,b); draw(subpath(cle,itd[0],itd[2]), 1mm+.8blue); draw(subpath(cle,itd[1],itd[2]), 1mm+.8green); draw(subpath(cle,itd[2],length(cle)+itd[0]), 1mm+.8yellow); /**/ pair[] pta=intersectionpointsd(cle,a,b); dot(pta,red); draw(pta[0]--a^^b--pta[1],red+dotted);