import graph_pi; unitsize(x=2cm,y=4cm); real f(real x){return abs(sin(x));}; real g(real x){return cos(x);}; real x; xlimits(-.25, 8); ylimits(-1.25, 1.25); xaxis(LeftTicks); yaxis(Ticks); path Cf=graph(f, 0, 8,500); path Cg=graph(g, 0, 8,500); draw(Cf,bp+red); draw(Cg,bp+blue); x=pi/4; /*MODgraph_pi.asy.html#addtangentMOD*/ addtangent(Cf, x, .5yellow, drawleft=false); addtangent(Cg, x, .5yellow, drawright=false); dot((x,f(x))^^(x,g(x))); x=3*pi/4; path tg=tangent(Cf, x); draw(tg); addtangent(Cg, x); pair M=intersectionpoint(tg,Cg); dot("$M$",M,E); addtangent(Cg, M.x, size=3cm,p=red); draw((x,f(x))--(x,g(x)),scale(2)*MarkFill[0]); x=pi; addtangent(Cg, x, size=2cm,.8(green+blue)); dot((x,g(x))); x=5*pi/4; addtangent(Cf, x, size=2cm, v=(1,.25/sin(x)), drawright=false, p=red, arrow=Arrow(5mm,NoFill)); addtangent(Cf, x, size=2cm, drawleft=false, red); dot((x,f(x))); x=2*pi; addtangent(Cf, x, size=4cm,p=.8green,differentiable=false); dot((x,f(x)));